首页 > 解决方案 > 更改表上的 auto_increment 值的过程

问题描述

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

我尝试将@v_value 更改为v_value(普通变量,而不是@variable)。我也尝试使用'?在@v_sql 但也不起作用。我尝试更改“读取 SQL 数据”,但没关系。帮忙看看有什么问题。

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
//

谢谢你的帮助 :)

标签: mysqlsqlprocedure

解决方案


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

EXECUTE st;

推荐阅读