使用RAISE创建触发器

use*_*466 2 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  
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

CL.*_*CL. 6

文档所示,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;
Run Code Online (Sandbox Code Playgroud)