我正在auto-increment向大表中添加一个字段。
该字段已填充(大约 1-500M)并且新插入的内容正在正确地手动递增。为了验证,我运行了一个查询以显示任何重复项:
mysql> SELECT new_id, COUNT(*) AS count FROM my_table GROUP BY new_id HAVING count > 1;
# No Results
Run Code Online (Sandbox Code Playgroud)
当我手动查看最新记录时,我会看到看起来像自动递增的BIGINT(20)字段。NULL该列中不存在 's 。
然而,当我尝试将索引更改为 a UNIQUE INDEX(从非唯一索引,但具有唯一值)时,它会触发DUPLICATE KEY错误。并且重复键始终为MAX(new_id)+1,因此有问题的重复项的aSELECT始终不返回任何结果。
这是我正在运行的内容:
mysql> SELECT MAX(new_id) FROM my_table;
+-------------+
| MAX(new_id) |
| 512345678 |
+-------------+
1 row in set (0.00 sec)
mysql> ALTER TABLE my_table
DROP INDEX `idx_new_id`,
ADD UNIQUE INDEX `idx_new_id ` USING BTREE (`new_id `); …Run Code Online (Sandbox Code Playgroud)