• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql 总报错 Error Code : 1064 请

mysql 搞代码 7年前 (2018-06-05) 271次浏览 已收录 0个评论

mysql 总报错 Error Code : 1064 请高手指点
我是个新手 找了一下午错误了 头大了 请高手指点 到底是哪里错了。。

DELIMITER $$

CREATE PROCEDURE `pr_addshieldstateparam`(
IN mobile VARCHAR(60),
IN sendNo VARCHAR(60),
IN reason VARCHAR(200),
IN jobNumber VARCHAR(60))
BEGIN
DECLARE resultCode VARCHAR(2);
— DECLARE resultDesc VARCHAR(500);
SET autocommit = 0;
IF sendNo IS NULL THEN
SET sendNo=”;
END IF;
IF reason IS NULL THEN
SET reason=”;
END IF;
IF sendNo=” THEN
SELECT -1 AS resultCode;
ELSEIF
INSERT INTO shieldstate(mobile,sendno,reason,jobnumber)
VALUES (mobile,sendNo,reason,jobNumber);
INSERT INTO shieldstate_log(mobile,sendno,reason,jobnumber,operation)
VALUES (mobile,sendNo,reason,jobNumber,’0′);

IF @@warning_count <> 0 ||@@error_count>0 
THEN
ROLLBACK;
SELECT -2 AS resultCode;
ELSE
COMMIT;
SELECT 0 AS resultCode;
END IF;

END IF;
END$$

DELIMITER ;

报错信息:
Query : CREATE PROCEDURE `pr_addshieldstateparam`( IN mobile varchar(60), in sendNo varchar(60), in reason varchar(200), in jobNumber v…

Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘into shieldstate(mobile,sendno,reason,jobnumber)
values (mobile,sendNo,reason,’ at line 19

——解决方案——————–
DELIMITER $$

CREATE PROCEDURE `pr_addshieldstateparam`(
IN mobile VARCHAR(60),
IN sendNo VARCHAR(60),
IN reason VARCHAR(200),
IN jobNumber VARCHAR(60))
BEGIN
 DECLARE resultCode VARCHAR(2);
 — DECLARE resultDesc VARCHAR(500);
 SET autocommit = 0;
 IF sendNo IS NULL THEN
 SET sendNo=”;
 END IF;
 IF reason IS NULL THEN
 SET reason=”;
 END IF;
 IF sendNo=” THEN
 SET resultCode=-1 ;
 ELSE
 INSERT INTO shieldstate(mobile,sendno,reason,jobnumber)
 VALUES (mobile,sendNo,reason,jobNumber);
 INSERT INTO shieldstate_log(mobile,sendno,reason,jobnumber,operation)
 VALUES (mobile,sendNo,reason,jobNumber,’0′);
 END IF;
 IF @@warning_count <> 0 AND @@error_count>0 THEN
 ROLLBACK;
 SELECT -2 AS resultCode;
 ELSE
 COMMIT;
 SELECT 0 AS resultCode;
 END IF;

 — END IF;
END$$

DELIMITER ;
——解决方案——————–
逻辑判断自行检查一下
——解决方案——————–
IF @@warning_count <> 0 or @@error_count>0
——解决方案——————–
IF sendNo=” THEN
SELECT -1 AS resultCode;
ELSE
INSERT INTO shieldstate(mobile,sendno,reason,jobnumber)
VALUES (mobile,sendNo,reason,jobNumber);
INSERT INTO shieldstate_log(mobile,sendno,reason,jobnumber,operation)
VALUES (mobile,sendNo,reason,jobNumber,’0′);

ELSEIF的语法不是这样。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 总报错 Error Code : 1064 请

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址