我有3个表:第一个表将所有记录都存储到t1表中,第二个表是我的白名单条目所在的位置,第三个表用于将来对t2做出一些决定。 我需要在插入后通过第三张表触发更新。 步骤:
这是我的代码,它不起作用,我不知道如何应用它,我已经尝试了很多选项。
CREATE TRIGGER check_whitelist AFTER INSERT ON t1
FOR EACH ROW
SELECT
IF(IFNULL(new.name=(
select name From t2 where (t2.name = new.name),
UPDATE t3 SET option1 =0 ,
UPDATE t3 SET option2 =1
)))
请帮助我编写此代码。
答案 0 :(得分:1)
您不能在UPDATE
查询中放入SELECT
查询。在您要分配给IF()
的值中使用option1
表达式。
FOR EACH ROW
UPDATE t3 SET option1 = IF(new.name = (SELECT name FROM t2 WHERE t2.plate = new.name),
0, 1)