我尝试为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行