2011-06-24 54 views
4

父表是SQLite的級聯刪除

CREATE TABLE BHEAD (
ID INTEGER primary key asc, 
DESCR TEXT, 
LINECTR INT, 
UNITCTR INT) 

子表是

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

我也執行sql PRAGMA foreign_keys = ON; 但它不能正常工作;當我從BHEAD刪除一行時,其在BDET中的關聯行不會消失...

爲什麼會這樣?

回答

1

你正在使用什麼版本的SQLite?

請參閱:Foreign Keys

爲了在SQLite中使用外鍵約束,必須編譯既沒有定義SQLITE_OMIT_FOREIGN_KEY也沒有SQLITE_OMIT_TRIGGER的庫。

+0

我還沒有能夠使它與SQLite3的版本3.6.12,但與客戶端指定的雜注它在SQLite3 3.7.8工作。 – jonasbn