SQLite级联删除

Dav*_* He 5 sql cascading-deletes

父表是:

CREATE TABLE BHEAD (
ID INTEGER primary key asc,
DESCR TEXT,
LINECTR INT,
UNITCTR INT)
Run Code Online (Sandbox Code Playgroud)

子表是:

CREATE TABLE BDET (
ID INTEGER primary key asc,
BID INTEGER,
BCODE TEXT,
QTY INTEGER,
FOREIGN KEY (BID) REFERENCES BHEAD(ID) ON DELETE CASCADE
)
Run Code Online (Sandbox Code Playgroud)

我还执行 SQL PRAGMA foreign_keys = ON;。然而,这不起作用;当我从 中删除一行时BHEAD,它的关联行BDET没有消失......

为什么会这样?

jon*_*sbn 1

您使用什么版本的 SQLite?

请参阅:外键

为了在 SQLite 中使用外键约束,必须在未定义 SQLITE_OMIT_FOREIGN_KEY 或 SQLITE_OMIT_TRIGGER 的情况下编译该库。