Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入3个表后的mysql触发器_Mysql - Fatal编程技术网

插入3个表后的mysql触发器

插入3个表后的mysql触发器,mysql,Mysql,我有3个表:第一个表将所有记录都保存到t1表中,第二个表是我的白名单条目所在的位置,第三个表用于将来对t2做出一些决定。 我需要在插入后通过第三个表创建一个更新。 步骤如下: 一些值出现在称为“t1”的表中 需要检查值是否在“t2”中 如果值在t2中,则转到t3并执行某些操作;如果值不在t2中,则转到t3并执行其他操作 但该值始终需要输入t1 这是我的代码,它不起作用,我不知道如何应用它,我已经尝试了许多选项 CREATE TRIGGER check_whitelist AFTER INSERT

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

  • 一些值出现在称为“t1”的表中
  • 需要检查值是否在“t2”中
  • 如果值在t2中,则转到t3并执行某些操作;如果值不在t2中,则转到t3并执行其他操作
  • 但该值始终需要输入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的值中使用
    IF()
    表达式

    FOR EACH ROW
    UPDATE t3 SET option1 = IF(new.name = (SELECT name FROM t2 WHERE t2.plate = new.name),
                               0, 1)
    
    @a、 阿图尔请看:。你也会因此得到分数。谢谢:)