2011-06-24 13 views
4

に親テーブルを削除sqliteのカスケードは、

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

子テーブルは、それが動作しません。しかし、私はまた、SQL PRAGMA foreign_keys = ON; を実行

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

です。 BHEADから1行を削除すると、対応する行がBDETになりません。

なぜですか?

答えて

1

使用しているSQLiteのバージョンは?

ご覧ください:Foreign Keys

SQLiteで外部キー制約を使用するには、SQLITE_OMIT_FOREIGN_KEYもSQLITE_OMIT_TRIGGERも定義されていない状態でライブラリをコンパイルする必要があります。

+0

私はSQLite3バージョン3.6.12で動作するようにはできませんでしたが、クライアントで指定されたプラグマを使用するとSQLite3バージョン3.7.8で動作します。 – jonasbn