如何使用Sqlite android case执行不同的insert语句,

时间:2013-08-16 03:42:09

标签: android sqlite android-sqlite

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

   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”附近:语法错误无法执行语句

1 个答案:

答案 0 :(得分:0)

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

在SQLite中,triggers must be written with pure SELECT/INSERT/UPDATE/DELETE statements,以及你想要完成的任何事情都必须是那些副作用。

但是,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;