如果我尝试做以下的事情:
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
我的专栏而不删除并重新添加我的主键/外键?
答案 0 :(得分:2)
你确实可以rename primary keys,但是,你必须先使用the 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;
抱歉,但出于诚信目的,这是您 这样做的唯一方式。