2017-08-02 15 views
-1

誰かが次のSQLiteセッションの参照制約がうまくいかない理由を説明できますか?あなたが外部キーのサポートを有効にようにそれは見えないSQLiteの外部キー制約が機能していませんか?

C:\Users\johnd> sqlite3 -version 
3.19.3 2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b 
C:\Users\johnd> sqlite3 
SQLite version 3.19.3 2017-06-08 14:26:16 
Enter ".help" for usage hints. 
Connected to a transient in-memory database. 
Use ".open FILENAME" to reopen on a persistent database. 
sqlite> create table parent (
    ...> id integer primary key, 
    ...> name text); 
sqlite> create table child (
    ...> id integer primary key, 
    ...> parent_id integer references parent(id), 
    ...> description text); 
sqlite> insert into parent (id, name) values(1, 'Bob'); 
sqlite> insert into parent (id, name) values(2, 'Sally'); 
sqlite> insert into child (id, parent_id, description) values(1, 3, 'bad ref'); 
sqlite> select * from parent; 
1|Bob 
2|Sally 
sqlite> select * from child; 
1|3|bad ref 
sqlite> .exit 
C:\Users\johnd> 

答えて

0

:これが本当の、単純なセッションあなたがセッションで印刷SQLiteバージョンを見ることができるのWindows 10上でsqlite3のを使用。 (デフォルトではオフになっています)PRAGMA foreign_keys = 1;を試してみてください。

P.S.これをファイル~/.sqlitercに入れて、sqlite3コマンドラインツールで自動的に有効にすると便利です。

関連する問題