触发器内的Sqlite CTE-insert会产生语法错误

时间:2014-11-10 07:47:34

标签: sqlite triggers insert common-table-expression

我的代码出现问题而且我似乎无法弄清问题是什么,所以我想我会把它放在这里,希望其他人可能会发现错误(或证实我越来越怀疑一个错误)。

所以基本上代码与此相当,即使使用此示例代码,我得到的只是"错误:接近" INSERT":语法错误"即使CTE插入应该是完全合法的,并且它不在触发器内时起作用。我使用的是Sqlite 3.8.7。

CREATE TABLE a (val INTEGER);
CREATE TABLE b (val INTEGER);

CREATE TRIGGER update_b AFTER INSERT ON a
BEGIN 
    WITH prev AS (
        SELECT
            0 AS val
        )
        INSERT INTO b(
            val
        )
        SELECT
            prev.val
        FROM prev;
END;

谢谢!

1 个答案:

答案 0 :(得分:1)

documentation说:

  

WITH子句不能在CREATE TRIGGER中使用。