MySQL:如何重命名主键

3

在mysql中创建表时,我将主键列的名称设置错误。

ALTER TABLE `table_name` CHANGE COLUMN `old_id_name` `new_id_name` integer auto_increment primary key

接下来我会得到:

Error message: Multiple primary key defined

那么问题是如何重命名列。请注意,我不想将主键更改为其他内容,而只是将其重命名。


首先,您必须删除旧的主键,然后才能为新的主键更改表。 - Sadikhasan
@Sadikhasan,这是否意味着列中的数据将丢失? - Eugeny89
3个回答

7

使用以下查询语句:

ALTER TABLE `table_name` CHANGE `old_id_name` `new_id_name` INT(11) NOT NULL AUTO_INCREMENT;

它只会更改主键的列名


2

试试这个:

ALTER TABLE table_name CHANGE column old_name new_name int;

fiddle


2

试试这个

如果你的旧列已经包含NOT NULLAUTO_INCREMENT属性,只需使用它即可。

ALTER TABLE tablename CHANGE column old_name new_name int;

如果需要添加 NOT NULLAUTO_INCREMENT 属性,请使用它。

ALTER TABLE tablename CHANGE column old_name new_name int NOT NULL AUTO_INCREMENT;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接