0

我从一个选择语句中选择一个值,然后我想从不同的表中执行两个不同的插入。

   create trigger hello after insert on b
   begin    
    select tag from b;

       case when  result =0
       Then 
          insert a values("true");
        else
          insert c values("false");     
   end;

我怎样才能实现这个触发器。错误是“查询错误:靠近“CASE”:语法错误无法执行语句

4

1 回答 1

0

SQLite 没有CASE语句;它只有一个CASE可以在其他 SQL 语句中使用的表达式。

在 SQLite 中,触发器必须用纯 ///SELECT语句编写INSERTUPDATEDELETE而你想做的任何事情都必须是这些语句的副作用。

但是,该WHEN子句允许条件执行。这仅适用于整个触发器,因此您需要其中两个:

CREATE TRIGGER hello_tag_0
AFTER INSERT ON b
FOR EACH ROW
WHEN NEW.tag = 0
BEGIN
    INSERT INTO a VALUES('true');
END;

CREATE TRIGGER hello_tag_not0
AFTER INSERT ON b
FOR EACH ROW
WHEN NEW.tag <> 0
BEGIN
    INSERT INTO c VALUES('false');
END;
于 2013-08-16T07:49:10.950 回答