我试图熟悉 MySQL,但感到很沮丧。
我正在尝试创建一个函数...
use mystuff;
DELIMITER $$
create PROCEDURE spUpdateCodeTable(
IN mcodeID INT,
IN mtableCode CHAR(5),
IN mDescription VARCHAR(100),
IN mCode CHAR(5),
IN mgroupCode CHAR(5),
IN mt1 VARCHAR(100),
IN mt2 VARCHAR(100),
IN mt3 VARCHAR(100))
BEGIN
UPDATE codeTable SET
tableCode =mtableCode,
Description=mDescription,
Code=mCode,
groupCode=mgroupCode,
t1=mt1,
t2=mt2,
t3=mt3,
chaDate=NOW()
WHERE codeID = mcodeID;
IF (ROW_COUNT() < 1)
BEGIN
INSERT INTO codeTable (tableCode,Description,Code,groupCode,t1,t2,t3,createDate)
VALUES (mtableCode,mDescription,mCode,mgroupCode,mt1,mt2,mt3,NOW());
END;
END$$
DELIMITER ;
当我只有 UPDATE 部分时,该过程编译得很好,但是当我添加插入四行(从 IF (ROW_COUNT().... 开始)时,我开始得到......
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在附近使用的正确语法
'开始
INSERT INTO codeTable (tableCode, Description, Code, groupCode,t1,t2,t' at line 23'
最佳答案
就像@Phil 所说,你会想要...
IF (ROW_COUNT() < 1) THEN
INSERT INTO codeTable (tableCode,Description,CODE,groupCode,t1,t2,t3,createDate)
VALUES (mtableCode,mDescription,mCode,mgroupCode,mt1,mt2,mt3,NOW());
END IF;
而不是你拥有的。
存储过程的 MySQL 错误消息不是很棒吗?
关于mysql - MySQL插入时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339598/