用3张表插入后的mysql触发器

时间:2018-11-19 09:58:44

标签: mysql

我有3个表:第一个表将所有记录都存储到t1表中,第二个表是我的白名单条目所在的位置,第三个表用于将来对t2做出一些决定。 我需要在插入后通过第三张表触发更新。 步骤:

  1. 一些值进入名为“ t1”的表
  2. 需要检查该值是否在“ t2”中
  3. 如果该值不在t2中,则转到t3并执行某些操作;如果该值不在t2中,则请转到t3并执行其他操作。
  4. 但是该值将始终需要输入t1。

这是我的代码,它不起作用,我不知道如何应用它,我已经尝试了很多选项。

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
)))

请帮助我编写此代码。

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)