ホームページ  >  記事  >  データベース  >  'table_name' を 'new_table_name' に名前変更する際のエラー (エラー番号: 150) - MySQL エラーの解決方法: 'table_name' を 'new_table_name' に名前変更する際のエラー、エラー番号: 150

'table_name' を 'new_table_name' に名前変更する際のエラー (エラー番号: 150) - MySQL エラーの解決方法: 'table_name' を 'new_table_name' に名前変更する際のエラー、エラー番号: 150

WBOY
WBOYオリジナル
2023-10-05 08:18:13841ブラウズ

Error on rename of \'table_name\' to \'new_table_name\' (errno: 150) - 如何解决MySQL报错:重命名\'table_name\'为\'new_table_name\'时出错,错误编号:150

MySQL エラーの解決方法: 'table_name' を 'new_table_name' に名前変更するときにエラーが発生しました、エラー番号: 150、特定のコード例が必要です

使用する場合MySQL データベースでは、さまざまなエラーが頻繁に発生します。よくある間違いの 1 つは、データ テーブルの名前を変更するときです。 MySQL データベースは、名前変更操作を実行するとエラー番号 150 を返します。このエラーは通常、外部キー制約によって発生します。

外部キー制約は、テーブル間の相関を確保するために使用されるメカニズムです。テーブルの名前を変更する場合、テーブルに外部キーの関連付けがある場合、MySQL によって名前を直接変更できなくなります。代わりに、エラー 150 が報告されます。では、この問題をどうやって解決すればいいのでしょうか?いくつかの具体的なコード例を以下に示します。

まず、このエラーを示すために 2 つの単純なテーブルを作成しましょう。

CREATE TABLE table1 (
   id INT PRIMARY KEY
);

CREATE TABLE table2 (
   id INT PRIMARY KEY,
   table1_id INT,
   FOREIGN KEY (table1_id) REFERENCES table1(id)
);

上記のコードでは、table1 と table2 という 2 つのテーブルを作成しました。これら 2 つのテーブルの間には外部キーの関連付けがあり、table2 の table1_id フィールドは table1 の id フィールドを参照します。

次に、table1 テーブルの名前を変更してみます:

RENAME TABLE table1 TO new_table1;

上記のコードを実行すると、MySQL はエラー 150 を返します。 table2 は table1 の外部キー制約に依存しているため、MySQL では table1 の名前を直接変更することはできません。

それでは、この問題をどうやって解決すればいいのでしょうか?このエラーを解決するには 2 つの方法があります。

方法 1: まず外部キー制約を削除してから、その名前を変更します。

ALTER TABLE table2 DROP FOREIGN KEY table2_ibfk_1;
RENAME TABLE table1 TO new_table1;

上記のコードでは、ALTER TABLE ステートメントを使用して、table2 テーブルの外部キー制約を削除しました。次に、名前変更操作を続行します。今度は、MySQL は名前変更操作を正常に実行します。

方法 2: ALTER TABLE ステートメントを使用して、テーブル名と外部キー制約を同時に変更します。

ALTER TABLE table1 RENAME new_table1;
ALTER TABLE table2 DROP FOREIGN KEY table2_ibfk_1;
ALTER TABLE new_table1 ADD CONSTRAINT table2_fk FOREIGN KEY (id) REFERENCES table2(table1_id);

上記のコードでは、まず ALTER TABLE ステートメントを使用して、table1 テーブルの名前を new_table1 に変更します。次に、table2 テーブルの外部キー制約を削除しました。最後に、ALTER TABLE ステートメントを使用して外部キー制約を再追加し、外部キーの関連付けがまだ存在することを確認しました。

上記の 2 つの方法により、MySQL エラー 150 の問題を正常に解決できます。ただし、テーブルの名前を変更する前に、他のテーブルがそのテーブルの外部キー制約に依存していないことを確認する必要があることに注意してください。それ以外の場合は、まず関連する外部キー制約を削除してから、名前変更操作を実行する必要があります。

つまり、MySQL データベースを使用する場合、エラーは避けられません。エラー番号 150 と同様の問題が発生した場合は、上記の解決策を通じて問題を解決できます。上記の具体的なコード例が、MySQL がテーブルの名前を変更するときに発生するエラーの解決に役立つことを願っています。

以上が'table_name' を 'new_table_name' に名前変更する際のエラー (エラー番号: 150) - MySQL エラーの解決方法: 'table_name' を 'new_table_name' に名前変更する際のエラー、エラー番号: 150の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。