Mysql:使用子查询将列更改为auto_increment以获取最大列id

标签 mysql auto-increment

我刚刚开始研究 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/

相关文章:

php - mysql INSERT查询中的动态php变量

php - 如果有的话,我需要做什么来确保 $mdb2->lastInsertID() 返回该连接的自动增量值?

php - 为什么我无法在 _id 在 mongodb 中找到记录

php - UTF 8 编码与 Mysql 数据库

php - Drupal 6登录失败,错误 "too many redirects"

java - 从另一个位置运行executeBatch()

mysql - 可以在 mysql (5.5) 中创建模式 INFORMATION_SCHEMA 中表的触发器吗?

mysql - 如何使用 MySQL 在表中创建嵌套 AUTO_INCRMENT 字段?

sql - SQL Server 中的字母数字序列

mysql - mysql中主键的选择和自动增量的意外行为