【问题标题】:Create triggers with RAISE使用 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  

我做错了什么?

【问题讨论】:

    标签: sqlite triggers


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 2012-05-14
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多