エラーが発生していたテーブルとは別のデータベースとテーブルを使用しましたが、それでもエラーは解決しません....
以下に 3 つのテーブルを示します。
表 a:
create table a(q int,w int,primary key(q,w));//IMPORTANT:q then w
q と w は複合主キーを形成します。
表 b:
create table b(e int,r int);
表 3:
create table c(t int,y int);
alter table b add foreign key(e) references a(q);
Query OK, 0 rows affected (0.16 sec)
この変更コマンドは、e をテーブル a の q への外部キー (「最初の」主キー) にします。
別の属性を 2 番目の主キー、つまり 'w' の外部キーとして作成しようとすると、エラー 1215 が表示されます。
alter table c add foreign key(t) references a(w);
エラー 1215 (HY000): 外部キー制約を追加できません
「t」を「SECOND」主キー、つまり「w」の外部キーとして使用しないのはなぜですか。「最初の主キー(q)の外部キーとしてそれらのいずれかを作成できますが、2番目の主キー(w)には作成できません」。
これは紛らわしいかもしれませんが、テーブル a の作成中に (q,w) を (w,q) に変更するだけですべてを削除して再度作成すると、他の人は w を参照できますが、a は参照できません。
create table a(q int,w int,primary key(w,q));
alter table c add foreign key(t) references a(w);
Query OK, 0 rows affected (0.16 sec)
alter table b add foreign key(e) references a(q);
エラー 1215 (HY000): 外部キー制約を追加できません
助けてください....私には丸一日かかりました..しかし、なぜそれが起こっているのかわかりませんでした...