mysql 添加自动增量和附加键
我正在尝试通过添加新列来更改表,将其设置为自动增量并使用键。
该表已经有一把钥匙,这把钥匙将被添加。我得到的错误如下。
error : Multiple primary key defined
我的代码是:
alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
我也尝试包装密钥名称 ie
alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY (id) KEY FIRST;
但仍然没有运气。
怎么办呢?
I am trying to alter a table with adding a new column setting it as auto increment and with a key.
The table already has one key and this one will be an addition. The error I get is the following.
error : Multiple primary key defined
My code is:
alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
I have also tries wrapping the key name ie
alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY (id) KEY FIRST;
But still no luck.
How can it be done ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MySQL 不支持非主键的 AUTO_INCRMENT 列。一种选择是将 AUTO_INCRMENT 列设为主键,并且仅对另一个“键”具有唯一约束。
MySQL doesn't support AUTO_INCREMENT columns that aren't the primary key. One option is to make the AUTO_INCREMENT column the primary key, and just have a unique constraint on the other 'key'.
内森几乎回答了这个问题。
您可以使用
SHOW INDEX FROM mydb.mytable
SQL 命令查找现有索引的名称。您必须首先使用
DROP_INDEX existing_index ON mydb.mytable
删除现有索引。然后,您更改表并使用代码添加主索引。
最后,使用
CREATE UNIQUE INDEX unique_index ON mydb.mytable (column)
将另一个索引创建为唯一索引。nathan pretty much answered the question.
You find the name(s) of the existing index(es) by using the
SHOW INDEX FROM mydb.mytable
SQL command.You have to drop the existing index first, using
DROP_INDEX existing_index ON mydb.mytable
.Then you alter the table and add the primary index with your code.
Finally, you create the other index as a unique index, using
CREATE UNIQUE INDEX unique_index ON mydb.mytable (column)
.