这有点奇怪,但在工作时多次注意到这一点。我有一个表格,其中有列名称' id'使用auto_increment约束。如果我尝试重新定位此列(即id)auto_increment约束被删除。下面我提供了图片和查询。此操作在mysql数据库上执行。
查询:alter table login_client modify id int(11) first;
正如您在第二张图片中看到的那样。约束auto_incremnt刚刚消失。
答案 0 :(得分:2)
查看文档:
https://dev.mysql.com/doc/refman/5.7/en/alter-table.html
它说:
使用CHANGE或MODIFY时,column_definition必须包含应该应用于新列的数据类型和所有属性,而不是索引属性(如PRIMARY KEY或UNIQUE)。
这是设计使然,因此当您以这种方式更改列时,您需要重新创建要应用于它的任何属性。请注意,AUTO_INCREMENT在技术上是一个属性,而不是约束。
您可以在命令中轻松地重新指定auto_increment属性,如下所示:
alter table login_client modify id int(11) auto_increment first;
答案 1 :(得分:1)
首先auto_increment
是Default Value
列的额外属性。
当您在任何表格中modify column时,您必须提供列的所有额外属性。
alter table login_client modify id int(11) auto_increment first;
答案 2 :(得分:0)
试试这个。 它会自动增加给定的字段。
alter table login_client modify id int auto_increment