【问题标题】:Procedure to change auto_increment value on table更改表上的 auto_increment 值的过程
【发布时间】:2019-01-06 19:28:05
【问题描述】:

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

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

感谢您的帮助:)

【问题讨论】:

标签: mysql sql procedure


【解决方案1】:

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

EXECUTE st;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2021-12-04
    • 2013-06-28
    • 1970-01-01
    • 2020-03-21
    • 2014-04-17
    • 2011-01-18
    相关资源
    最近更新 更多