我刚刚开始研究 mysql,有一个问题.. 所以我有一个表测试,其中包含这样的列 测试ID 测试描述 测试结果
其中 test_id 为 BIGINT UNSIGNED NOT NULL;
test_id 列看起来像
1
2
3
123
321
1293
1299
1300
1301
我正在尝试修改 test_id,将其重命名,并根据列中的最大数字将其设置为自动增量。
我可以做到这一点
ALTER TABLE tests CHANGE test_id result_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT=1302
所以这可行,但是,我想根据 test_id 列的最大数量将自动增量设置为一个变量。我试过这个
ALTER TABLE tests CHANGE test_id result_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT=(SELECT MAX(test_id) AS test_id FROM tests);
它提示 AUTO_INCRMENT 周围的语法错误。
知道是否有办法做到这一点吗?
非常感谢
编辑:JStephen 的评论!我认为它现在正在发挥作用。各位。
最佳答案
如果您不指定自动增量编号,则在确定下一个增量时将自动使用最高值。
关于Mysql:使用子查询将列更改为auto_increment以获取最大列id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25084563/