设置AUTO_INCREMENT的表达式

时间:2016-09-24 04:08:01

标签: mysql sql auto-increment

我尝试为AUTO_INCREMENT结果设置count() 当我尝试得到:

SELECT COUNT(*) + 1 from `Lista`;

我有:

|COUNT(*) + 1|
+------------+
|6           |

我好。
当我尝试:

ALTER TABLE `tmp` AUTO_INCREMENT = 6;

我好 - 新行有id = 6;
但是当我尝试使用这段代码时:

ALTER TABLE `tmp` AUTO_INCREMENT = (SELECT COUNT(*) + 1 from `Lista`);

我发现了这个错误:

  

(1064):语法错误接近'(来自Lista的SELECT COUNT(*)+ 1)'在第2行

我尝试过使用变量,但在这种情况下:

SELECT COUNT(*) + 1 INTO @old_auto_inc FROM `Lista`;
ALTER TABLE `tmp` AUTO_INCREMENT = @old_auto_inc;

我有:

  

(1064):' @ old_auto_inc'附近的语法错误在第2行

如何使用表达式结果设置AUTO_INCREMENT

|@@version          |
+-------------------+
|5.6.29-1~dotdeb+7.1|

更新
我试过this way

SELECT max(id) + 1 INTO @inc FROM Lista;
set @st = 'ALTER TABLE tmp AUTO_INCREMENT = ?';
PREPARE stmt FROM @st;
EXECUTE stmt USING @inc;

但我有错误:

  

(1064):语法错误接近'?'在第1行

0 个答案:

没有答案