从这个SOquestion https://stackoverflow.com/questions/37825002/how-to-run-two-update-query-in-mysql-event-scheduler。我很困惑DELIMITER
。我还尝试了类似以下的操作:
CREATE EVENT test
ON SCHEDULE EVERY 2 MINUTE
DO
BEGIN
SELECT 1;
SELECT 2;
END
这给我带来了像提到的问题一样的错误:
错误代码:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 5 行 '' 附近使用的正确语法。
如果我运行以下 sql:
DELIMITER $$
CREATE EVENT test
ON SCHEDULE EVERY 2 MINUTE
DO
BEGIN
SELECT 1;
SELECT 2;
END $$
DELIMITER;
这有效并创建了一个新的EVENT
成功。
这两个sql之间唯一的区别是最后一个使用的DELIMITER
,所以我的问题是为什么DELIMITER
在这里工作。谁能给我解释一下吗?
感谢任何帮助并提前致谢。
您的答案就在此处的文档中21.1 定义存储程序 https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html
如果您使用mysql
客户端程序定义一个包含分号字符的存储程序时,就会出现问题。默认情况下,mysql
本身将分号识别为语句分隔符,因此必须暂时重新定义分隔符以导致mysql
将整个存储的程序定义传递到服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)