使用 RAISE 创建触发器

Posted

技术标签:

【中文标题】使用 RAISE 创建触发器【英文标题】:Create triggers with RAISE 【发布时间】:2014-04-07 16:55:58 【问题描述】:

我正在尝试将表限制为仅一条记录并禁用所有添加更多记录的尝试。 我创建了这个触发器: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】:

正如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;

【讨论】:

以上是关于使用 RAISE 创建触发器的主要内容,如果未能解决你的问题,请参考以下文章