我正在编写SQL,以便为数据库中的表创建触发器。当我们生成一个新的数据库时,这段代码应该在脚本中运行。
为了理解如何做到这一点,我一直在阅读SQL,并最终想出了这样一个查询:
DELIMITER $$
CREATE TRIGGER calendar_event_after_insert AFTER INSERT
ON calendar_event
FOR EACH ROW
BEGIN
IF @log_calendar_event_id = 'YES'
THEN
...
END IF;
IF @log_calendar_event_name = 'YES'
THEN
...
END IF;
...
END
$$
DELIMITER ;现在,我在使用划界器时遇到了一个错误,我承认我不太明白它是如何工作的。我的基本理解是,由于这个大查询中有多个查询都以;结尾,所以当查询使用另一个分隔符结束时,我需要告诉sql。
在阅读了一些关于分隔符的内容之后,对我来说,这似乎是正确的语法,最重要的是,我在续集pro中运行了这个查询,它有时工作,有时不工作(奇怪,我知道)。
因此,我最终决定移除分隔符部分,一切都很顺利。我有点担心这会有副作用。
所以我的问题是:什么时候使用分隔符?对我的情况有用吗?如果是这样的话,我在这里做错了什么?
应注释中的要求进行编辑
这是在运行查询时遇到的错误:
您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得在第1行插入日历后使用“划界器$$创建触发器calendar_event_after_insert”附近的正确语法。
我们在开发机器上安装了一个旧版本的MYSQL -MySQL5.1.73
发布于 2018-07-19 17:41:29
https://stackoverflow.com/questions/51427413
复制相似问题