有一個問題可能是有意的或無意的,但在我的情況下很惱人。如果您有以下的 schema
[程式碼]
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,就好像它只刪除了父項一樣。