我想更改表的主键,最初它是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
与许多表关联为外键。
如何更改主键。
答案 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);