gpt4 book ai didi

mysql - 定义过程 MySQL Workbench 时出现 @variable 问题

转载 作者:行者123 更新时间:2023-11-30 22:54:28 25 4
gpt4 key购买 nike

此代码在@counter 上产生错误错误码显示“Syntax Error: Unexpected '@counter' (at text suffix)”

我找不到让它运行的方法,

代码如下:

CREATE DEFINER=`root`@`localhost` PROCEDURE ValidateCC(IN ccNum char(16), OUT isValid BOOLEAN )
BEGIN
DECLARE @counter, @sum, @numb, @tmp AS INT DEFAULT 0;
DECLARE @result TINYINT(1) DEFAULT 1;
SET isValid = ‘False’;
IF ccNum IS NULL THEN
SET @result = 0;
ELSEIF char_length(ccNum) < 12 THEN
SET @result = 0;
SET @counter = char_length(ccNum);
IF ccNum NOT_REGEXP '^[0-9]+$' THEN
SET @result = 0;
END IF;
WHILE @counter > 0 DO
IF @counter > 1 THEN
SET @tmp = (ASCII(SUBSTR(ccNum, @counter, 1)) - 48) * 2;
IF @tmp > 9 THEN
SET @sum = @sum + @tmp - 9;
ELSE
SET @sum = @sum + @tmp;
END IF;
SET @number = @number + (ASCII(SUBSTR(ccNum, @counter, 1)) -48);
SET @counter = @counter - 2;
END IF;
SET @sum = MOD((@sum + @number), 10);
IF @sum = 0 THEN
SET @result =1
END IF;
END WHILE;
IF @result = 1 THEN
SET isValid = ‘True’;
ELSE
SET isValid = ‘False’;
END IF;
END ;

最佳答案

在存储过程中声明变量的正确语法 (http://dev.mysql.com/doc/refman/5.0/en/declare-local-variable.html):

`DECLARE counter, sum, numb, tmp INT DEFAULT 0;`

代替 DECLARE @counter, @sum, @numb, @tmp AS INT DEFAULT 0;... 没有 @, AS

关于mysql - 定义过程 MySQL Workbench 时出现 @variable 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001398/

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