問題の説明
Apsaradb RDS for MySQLは外部キー制約をサポートしています。 ただし、外部キー制約を作成すると、次のエラーメッセージが表示されます。
外部キー制約を追加できません
原因
結合するフィールドは、結合するテーブルの主キーではありません。
解決策
次に、tstudentテーブルとtscoreテーブルを例として、この問題を解決する方法を説明します。
次のSQL文を実行して
tstudentテーブル構造を表示し、関連付けられるフィールドが関連付けられたテーブルの主キーフィールドであるかどうかを判断します。ショー作成テーブルtstudent;同様の出力が表示される場合は、
tstudentテーブルにプライマリキーがないことを確認します。
次のSQL文を実行して、
tscoreテーブルの構造が正常であることを確認します。ショー作成テーブルtscore;次のコマンド出力が返されます。

次のSQL文を実行して、
tstudentテーブルの主キーを追加します。alter table tstudent addプライマリキー (sno);次のSQL文を実行して、外部キー制約を作成します。
alter table tscore add constraint fk_tscore_sno外部キー (sno) 参照tstudent(sno);
適用範囲
ApsaraDB RDS for MySQL