Mysql Alter命令如何更改现有表以添加主键

时间:2015-12-30 12:32:11

标签: mysql

我有桌名人员,

CREATE TABLE Persons (
    P_Id int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
)

现在我打算在第2列Lastname上添加主键,所以我尝试了alter command:

ALTER TABLE Persons
ADD CONSTRAINT pk_LastName PRIMARY KEY (LastName)

当我运行alter命令时,我有错误消息:1068定义了多个主键。

你能帮我解决一下这个问题吗?

谢谢, 帕拉尼

2 个答案:

答案 0 :(得分:1)

ALTER TABLE `Persons`   
CHANGE `LastName` `LastName` VARCHAR(255) CHARSET utf8 COLLATE utf8_danish_ci NOT NULL, 
DROP PRIMARY KEY,
ADD PRIMARY KEY (`P_Id`, `LastName`);

答案 1 :(得分:0)

桌面上已有主键。别定义另一个。相反,您可以在这些列上添加唯一约束:

ALTER TABLE Persons ADD CONSTRAINT unq_lastname UNIQUE (LastName);

然而,这似乎很危险,因为不同的人可以使用相同的姓氏。