2

以下のようなことをしようとすると:

ALTER TABLE myTable MODIFY id int unsigned;

id主キーまたは外部キーである場合、次のエラーがスローされます。

ERROR 1025 (HY000): Error on rename of './mydb/#sql-146dd_c' to './mydb/myTable' (errno: 150)

キーをドロップすると、次のようになります。

ALTER TABLE myTable DROP FOREIGN KEY id;

その後、MODIFY問題なく実行できますが、これは少し複雑に思えます。

MODIFY主キー/外部キーを削除して再追加せずに、自分の列だけを作成できる方法はありますか?

4

1 に答える 1

2

確かに主キーの名前を変更できますが、最初に DROP PRIMARY KEY句を使用して ALTER TABLE の特別なステータスを一時的に取り消す必要があります。

ALTER TABLE tbl_name DROP PRIMARY KEY my_misnamed_primary_key;
ALTER TABLE tbl_name RENAME COLUMN my_misnamed_primary_key TO primary_key;
ALTER TABLE tbl_name ADD PRIMARY KEY primary_key;

申し訳ありませんが、整合性を保つために、これが唯一の方法です。

于 2013-05-01T22:46:53.557 に答える