更改表上的auto_increment值的过程

时间:2019-01-06 19:28:05

标签: mysql sql procedure

我想要写过程,该过程在执行另一个过程后会更改表中的自动增量值。问题是程序已创建,但不起作用。当我尝试运行时,出现错误#1210-EXECUTE的参数不正确。我在链接Set AUTO_INCREMENT value through variable in MySql中发现了类似的问题,但是它对我不起作用。

我尝试将@v_value更改为v_value(普通变量,而不是@variable)。我也尝试使用'?'在@v_sql中,但也无法正常工作。我尝试更改“ READS SQL DATA”,但无论如何。帮助出现问题的地方。

DELIMITER //
CREATE PROCEDURE check_increment_value()
READS SQL DATA
BEGIN
SET @v_value = (SELECT MAX(id_version)+1 FROM versions);
SET @v_sql = CONCAT('ALTER TABLE `wersje` AUTO_INCREMENT = ',@v_value);
PREPARE st FROM @v_sql;
EXECUTE st USING @v_value;
END
//

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您通过字符串插值而不是通过预处理语句传递参数,因此您无需指定using子句:

EXECUTE st;