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