修改列的最简单方法?

时间:2013-05-01 22:07:29

标签: mysql sql database

如果我尝试做以下的事情:

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我的专栏而不删除并重新添加我的主键/外键?

1 个答案:

答案 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;

抱歉,但出于诚信目的,这是您 这样做的唯一方式。