在MySQL中插入时出现语法错误
我正试图熟悉MySQL,但却感到沮丧 我正在尝试创建一个函数在MySQL中插入时出现语法错误,mysql,insert,Mysql,Insert,我正试图熟悉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),
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 ;
使用mystuff;
分隔符$$
创建过程spUpdateCodeTable(
在mcodeID INT中,
在mtableCode字符(5)中,
在mDescription VARCHAR(100)中,
在mcodechar(5)中,
在mgroupCode字符(5)中,
在mt1 VARCHAR(100)中,
在mt2 VARCHAR(100)中,
在mt3中,VARCHAR(100))
开始
更新代码表集
tableCode=mtableCode,
Description=mddescription,
代码=mCode,
groupCode=mgroupCode,
t1=mt1,
t2=mt2,
t3=mt3,
chaDate=NOW()
其中codeID=mcodeID;
如果(行计数()<1)
开始
插入代码表(表代码、说明、代码、组码、t1、t2、t3、createDate)
值(mtableCode、mddescription、mCode、mgroupCode、mt1、mt2、mt3、NOW());
结束;
结束$$
定界符;
当我只有UPDATE部分时,这个过程编译得很好,但是当我添加了insert四行(从IF(ROW_COUNT()..)开始)之后,我就开始
#1064-您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获取正确的语法 “开始
就像@Phil所说的,你需要
插入到codeTable(tableCode,Description,Code,groupCode,t1,t2,t'在第23行)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;
而不是你所拥有的如果(行计数()<1),则 插入代码表(表代码、说明、代码、组码、t1、t2、t3、createDate) 值(mtableCode、mddescription、mCode、mgroupCode、mt1、mt2、mt3、NOW()); 如果结束;
存储过程的MySQL错误消息不是很精彩吗?
.TL;DR -<代码>……然后……结束;如果/<代码> >如果在代码的开头放一个“代码”><代码>,它指示一个标头。