繁体   English   中英

更改表上的auto_increment值的过程

[英]Procedure to change auto_increment value on table

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

我尝试将@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
//

谢谢你的帮助 :)

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

EXECUTE st;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM