为什么在RAISE()之前需要SELECT?

时间:2013-09-11 08:22:43

标签: sql sqlite triggers

我正在学习SQLite中的触发器,我发现RAISE()的语法有点令人惊讶,因为它需要一个SELECT才能工作。

例如,此查询将失败并显示Error: near "RAISE": syntax error,因为我尚未在RAISE()之前添加SELECT

CREATE TRIGGER mytrigger
BEFORE INSERT ON mytable
BEGIN
    RAISE(FAIL, "Activated - mytrigger.");
END;

为什么在SELECT之前需要RAISE()。它只是一个武断的规则,还是有一些我不理解的东西?

1 个答案:

答案 0 :(得分:1)

因为RAISE()是一个与其他任何函数一样的函数(例如LOWER()TRIM()),所以不是语句,也不能单独执行。