存在一个问题,可能是故意的,也可能不是,但在我的情况下很烦人。如果你有以下模式
[代码]
pragma foreign_key = on;
create table parent (
id integer,
a varchar,
primary key (id asc)
);
create table child (
id integer,
b varchar,
a integer,
primary key (id asc),
foreign key (a) references a (id) on delete cascade on update cascade
);
[/代码]
当你尝试删除父行 (delete from parent where parent.id=?) 时,它会删除所有引用到该父的子项,但 SQLite3::changes() 方法仍然返回 1,就好像它只删除了父项一样。