mysql DELIMITER 问题

来源:互联网 发布:淘宝下单微信全额返现 编辑:程序博客网 时间:2024/06/06 05:31

由于工作的原因好久没写博客了。

今天遇到一个问题,存储过程在线上用source执行报错,但是在测试库就没问题。经查找是DELIMITER与//之间缺少一个空格的原因。

DROP PROCEDURE IF EXISTS `SP_TEST`;DELIMITER// CREATE  PROCEDURE `SP_TEST`(IN P_RecId INT(11),IN P_OperateType INT(11))    SQL SECURITY INVOKER    COMMENT 'xxxx'BEGIN-- XXXXXXXXXxEND//DELIMITER ;

改成
DROP PROCEDURE IF EXISTS `SP_TEST`;DELIMITER // CREATE  PROCEDURE `SP_TEST`(IN P_RecId INT(11),IN P_OperateType INT(11))    SQL SECURITY INVOKER    COMMENT 'xxxx'BEGIN-- XXXXXXXXXxEND//DELIMITER ;

就好了。

DELIMITER  //

DELIMITER ;

这里一定是有空格的。

尤其是在sql_mode为

+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

的情况下。






原创粉丝点击