如何更改表的主键

时间:2013-05-30 12:42:24

标签: mysql

我想更改表的主键,最初它是id,现在我想将其更改为userid

   smsusers(id,fname,lname,userid)

这里的id是varchar类型 adn userid是int类型

为此我正在尝试以下查询

 ALTER TABLE smsusers DROP PRIMARY KEY

显示此错误

#1025 - Error on rename of '.\xrcwrn_sms\#sql-ae0_6f' to 
'.\xrcwrn_sms\smsusers' (errno: 150)
id的{​​p> smsusers与许多表关联为外键。

如何更改主键。

4 个答案:

答案 0 :(得分:1)

该消息告诉您,您无法删除主键,因为它是由一个或多个外键引用的。您需要先识别并删除外键,然后删除主键。

答案 1 :(得分:1)

ERROR NO:150表示外键定义问题。我认为其他一些表有一个外键约束,具体取决于这个PK,所以你需要先删除它,然后再重建它。

答案 2 :(得分:1)

以下是一个例子:

ALTER TABLE `database`.`table`   
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`userid`);

答案 3 :(得分:0)

我试过这个link。这工作正常。   我的步骤是

CREATE INDEX id_pk_unique ON smsusers (id)
ALTER TABLE parent DROP PRIMARY KEY;
ALTER TABLE parent ADD PRIMARY KEY (userid);