84

そのため、データベース内のテーブルの 1 つに主キーを追加しようとしています。現在、次のような主キーがあります。

PRIMARY KEY (user_id, round_number)

user_id は外部キーです。

私はこれを次のように変更しようとしています:

PRIMARY KEY (user_id, round_number, created_at)

テーブル構造ビューの主キーアイコンをクリックして、phpmyadminでこれを行っています。

これは私が得るエラーです:

#1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150)

これは、InnoDB テーブル エンジンを備えた MySQL データベースです。

4

7 に答える 7

140

変更しようとしている主キーを参照する外部キーを持つ別のテーブルがある可能性があります。

エラーの原因となったテーブルを特定するには、実行SHOW ENGINE INNODB STATUSしてLATEST FOREIGN KEY ERRORセクションを確認します。

于 2010-11-02T18:50:32.890 に答える
24

グーグル経由でこの質問にたどり着く人のために...このエラーは、外部キーとして機能しているフィールドの名前を変更しようとした場合にも発生する可能性があります。

于 2013-06-20T13:03:32.387 に答える
0

外部キーを追加しているときにこのエラーが発生した場合は、子テーブルの値が親テーブルに存在しない可能性があります。

外部キーを追加する必要がある列のすべての値が 0 に設定されており、参照しているテーブルでその値を使用できないとします。

親テーブルに存在する値を設定してから、外部キーを追加するとうまくいきました。

于 2016-11-18T07:32:58.067 に答える