0

私は3つのテーブルをすべてリンクしたい3つのテーブルを持っています。例: table1 : create table master (sr_no int,int,name text);

table2 : テーブル child1 を作成します (sr_no int、emplno int、last_name テキスト、外部キー (sr_no) は更新カスケードの削除カスケードでマスター (sr_no) を参照します);

table3 : テーブル child2 を作成します (Em int,phone text,foreign key(Em) refernces child1(emplno) on delete cascade on update cascade);

しかし、table3 にデータを挿入すると、その表示 ===> エラー: 外部キーの不一致

問題を教えてください ありがとう

4

2 に答える 2

0

ドキュメントには次のように記載されています。

親キー列は、まとめて UNIQUE 制約を受けるか、UNIQUE インデックスを持つ必要があります

UNIQUE 制約をchild1'Semplnoフィールドに追加するか、別のインデックスを作成してください。

于 2013-03-29T12:49:12.213 に答える
0

http://www.sqlite.org/foreignkeys.html#fk_indexes

次の場合、外部キー DML エラーが報告されることがあります。

  • 親テーブルが存在しない、または

  • 外部キー制約で指定された親キー列が存在しないか、または

  • 外部キー制約で指定された親キー列が親テーブルの主キーではなく、 CREATE TABLE で指定された照合シーケンスを使用する一意制約の対象ではない、または

  • 子テーブルが主キー列を指定せずに親の主キーを参照しており、親の主キー列の数が子キー列の数と一致していません。

従業員はchild2の主キーですか?

于 2013-03-29T12:45:46.740 に答える