使用RAISE创建触发器

时间:2014-03-05 14:47:11

标签: sqlite triggers

我正在尝试将表限制为仅一个记录并禁用所有添加更多的尝试。 我创建了这个触发器:CREATE TRIGGER abort_insert_to_my_tbl BEFORE INSERT ON my_tbl BEGIN RAISE(ABORT,"You can't add records to my_tbl") END;

但我一直收到这个错误:

Error: near line 3080: near "RAISE": syntax error  

我做错了什么?

1 个答案:

答案 0 :(得分:5)

正如documentation所示,RAISE是一个函数,而不是一个语句,所以它不能直接在触发器体中使用。

要在语句中使用函数,请使用例如SELECT语句:

CREATE TRIGGER abort_insert_to_my_tbl
BEFORE INSERT ON my_tbl
BEGIN
    SELECT RAISE(ABORT, 'You can''t add records to my_tbl');
END;