mysql - 如何在已存在且有数据的表中创建 AUTO_INCREMENT 列?

标签 mysql sql mysql-workbench

我想创建一个在插入新行时自动递增的列。 表已经有数据并且该数据不需要接收该索引,或者可以为NULL。我只想从现在开始增加。

看起来很简单,但我在 Workbench 中运行的是这样的:

ALTER TABLE `serra`.`acionamento` 
ADD COLUMN `indice` INT NULL AUTO_INCREMENT AFTER `date_insercao`

...上面写着

Incorrect table definition; there can be only one auto column and it must be defined as a key

该列真的需要为主键吗?

最佳答案

我找到了我正在寻找的解决方案...

我缺少一个独特的配置...

ALTER TABLE `serra`.`acionamento` 
ADD COLUMN `indice` INT NOT NULL AUTO_INCREMENT AFTER `column`,
ADD UNIQUE INDEX `indice_UNIQUE` (`indice` ASC);

感谢您的评论

关于mysql - 如何在已存在且有数据的表中创建 AUTO_INCREMENT 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58592436/

相关文章:

sql - Grails:HasMany交集查询

mysql-workbench - 如何在 MySQL Workbench 上执行耗时 99,999 秒的 SQL 查询?

mysql - 合并 MySQL 中的两列并忽略 NULL

sql - 选择重复两次的记录!

mysql - SQL查询两张表(1-M)

MySQL 从批处理文件创建数据库/用户

mysql - 单一关系 M :N for unknow element number

SQL 输出语法

python - MySQL On Update 未触发 Django/TastyPie REST API

MySql 文本搜索查找相似字符串