我试图在 SQLite 中使用外键支持来维护具有自反连接的单表数据库的引用完整性。
例如
PRAGMA foreign_keys = ON;
create table tree (
objectId text unique not null,
parentObjectID text,
foreign key (parentObjectID) references tree(parentObjectID) on delete cascade
)
我希望的行为是,当父行被删除时,其子行及其子行也将被删除。
但是,当我尝试删除根行时(预期的行为是数据库中的所有其他行也被删除),我收到此错误:
sqlite> delete from tree where objectid = '0';
Error: foreign key mismatch
SQLite外键支持(和删除行为)可以提供我的期望吗?