gpt4 book ai didi

mysql - 无法在 mysql 中存储执行语句的返回值

转载 作者:行者123 更新时间:2023-11-29 00:17:50 25 4
gpt4 key购买 nike

使用 MySQL,我试图创建一个存储过程来检索任何给定表中 varchar 列的最大值。我想将列的值增加 1,然后用它来存储其他字段。我不希望列为 int 和自动递增。

我现在的存储过程是 分隔符 $$

use gounicartdb$$

DROP PROCEDURE IF EXISTS sp_getUpdatedIDFromTable$$

CREATE PROCEDURE sp_getUpdatedIDFromTable(
IN tableName varchar(50),
IN columnName varchar(50),
IN incrementValue int/*,
OUT updatedID varchar(10)*/
)
BEGIN

SET @newID = "abc";

SET @cmdString = concat("Select max(", columnName, ") from ", tableName);

PREPARE stmt FROM @cmdString;

SELECT @newID = EXECUTE stmt;

END$$

DELIMITER ;

编译时我没有看到错误,但是在执行程序时出现以下错误。

14:50:48    Call sp_getUpdatedIDFromTable("user", "SNo", 1) Error Code: 1054. Unknown column 'EXECUTE' in 'field list'  0.000 sec

请帮忙。

最佳答案

你可以在你的程序中替换

SET @cmdString = concat("Select max(", columnName, ") into @newID from ", tableName);
PREPARE stmt FROM @cmdString;
EXECUTE stmt;
SELECT @newID;

关于mysql - 无法在 mysql 中存储执行语句的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com