MySQL:更改我的主键的列
我有一个具有以下主键的表:MySQL:更改我的主键的列,mysql,database,Mysql,Database,我有一个具有以下主键的表: PRIMARY KEY (`Id`,`InputOutputConfigurationServerAccountId`,`Identifier`) 我想修改它,使PK仅为Id列。我该怎么做 移除旧的PK ALTER TABLE\u name DROP主键 添加新的PK altertable\u name添加主键(Id) 问题似乎是您将Id定义为auto_increment。您需要首先将其更改为纯整数,由他们进行更改,然后将其恢复为自动增量。 试试这个: ALTER
PRIMARY KEY (`Id`,`InputOutputConfigurationServerAccountId`,`Identifier`)
我想修改它,使PK仅为Id
列。我该怎么做
ALTER TABLE\u name DROP主键
altertable\u name添加主键(Id)
问题似乎是您将
Id
定义为auto_increment
。您需要首先将其更改为纯整数,由他们进行更改,然后将其恢复为自动增量。试试这个:
ALTER TABLE SO1 MODIFY COLUMN ID INT;
ALTER TABLE SO1 DROP PRIMARY KEY;
ALTER TABLE SO1 ADD PRIMARY KEY (id);
ALTER TABLE SO1 MODIFY COLUMN ID INT AUTO_INCREMENT;
以下是对上述内容的测试(顺便说一句,如果我没有首先修改该专栏,我会得到您在对其他答案的评论中提到的错误):
一切正常。最终输出:
CREATE TABLE `SO1` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`InputOutputConfigurationServerAccountId` int(11) NOT NULL DEFAULT '0',
`Identifier` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
)
删除主键
,添加主键…
Mike,当我尝试删除主键时,我得到以下错误:#1075-表定义不正确;只能有一个自动列,必须将其定义为键
在删除自动增量之前。
CREATE TABLE `SO1` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`InputOutputConfigurationServerAccountId` int(11) NOT NULL DEFAULT '0',
`Identifier` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
)