mysql> alter table sfamily add column sid int not null auto_increment,add primary key(sid); ERROR 1068 (42000): Multiple primary key defined
时间: 2024-10-08 11:17:43 浏览: 52
当您尝试通过`ALTER TABLE`向`sfamily`表中添加包含`AUTO_INCREMENT`和`PRIMARY KEY`的`sid`字段时遇到错误,这是因为一个表只能有一个主键,而`auto_increment`通常用于自增长的主键。
如果你已经有一个其他的字段被定义为主键,那么再次试图添加`sid`并设置其为主键就会报错"Multiple primary key defined",因为MySQL不允许在一个表中有两个主键。
解决这个问题的方法是:
1. 首先确认当前是否有其他字段已经是表的主键,如果是,则需要删除或修改那个主键约束。
```sql
ALTER TABLE sfamily DROP PRIMARY KEY;
```
2. 然后重新创建`sid`字段为新的主键:
```sql
ALTER TABLE sfamily
ADD COLUMN sid INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (sid);
```
如果之前没有任何主键,只需要添加`AUTO_INCREMENT`即可:
```sql
ALTER TABLE sfamily
ADD COLUMN sid INT NOT NULL AUTO_INCREMENT;
```
之后,再单独创建主键:
```sql
ALTER TABLE sfamily
ADD PRIMARY KEY (sid);
```
阅读全文