すべてのプロダクト
Search
ドキュメントセンター

:apsaradb for MySQLが外部キー制約を作成すると、「外部キー制約を追加できません」というエラーメッセージが表示されます。

最終更新日:Jan 18, 2024

問題の説明

Apsaradb RDS for MySQLは外部キー制約をサポートしています。 ただし、外部キー制約を作成すると、次のエラーメッセージが表示されます。

外部キー制約を追加できません

原因

結合するフィールドは、結合するテーブルの主キーではありません。

解決策

次に、tstudentテーブルとtscoreテーブルを例として、この問題を解決する方法を説明します。

  1. 次のSQL文を実行してtstudentテーブル構造を表示し、関連付けられるフィールドが関連付けられたテーブルの主キーフィールドであるかどうかを判断します。

    ショー作成テーブルtstudent;

    同様の出力が表示される場合は、tstudentテーブルにプライマリキーがないことを確認します。

  2. 次のSQL文を実行して、tscoreテーブルの構造が正常であることを確認します。

    ショー作成テーブルtscore;

    次のコマンド出力が返されます。

  3. 次のSQL文を実行して、tstudentテーブルの主キーを追加します。

    alter table tstudent addプライマリキー (sno);

  4. 次のSQL文を実行して、外部キー制約を作成します。

    alter table tscore add constraint fk_tscore_sno外部キー (sno) 参照tstudent(sno);

適用範囲

  • ApsaraDB RDS for MySQL