Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
MySQL触发器上的IF条件_Mysql_Triggers - Fatal编程技术网

MySQL触发器上的IF条件

MySQL触发器上的IF条件,mysql,triggers,Mysql,Triggers,我有两个表(表A、表B)具有相同的字段(user_id、domi、ipiresia)。 用户可以在表A中添加值。我希望在表B中自动插入这些值,但只有在用户id未包含在表B中时才能插入。 开 我知道IF语句是错误的,因为触发器没有按预期工作。 有什么帮助吗?您根本不需要IF。只需在触发器上执行insert select,如下所示: INSERT INTO table_b (user_id, domi, ipiresia) SELECT NEW.user_id, NEW.domi, NEW.i

我有两个表(表A、表B)具有相同的字段(user_id、domi、ipiresia)。 用户可以在表A中添加值。我希望在表B中自动插入这些值,但只有在用户id未包含在表B中时才能插入。 开

我知道IF语句是错误的,因为触发器没有按预期工作。
有什么帮助吗?

您根本不需要IF。只需在触发器上执行
insert select
,如下所示:

INSERT INTO table_b (user_id, domi, ipiresia)
   SELECT NEW.user_id, NEW.domi, NEW.ipiresia
     FROM table_a
    WHERE NOT EXISTS (select 1 from table_b where user_id = NEW.user_id);

先自己尝试一下。研究,学习,而不是把你的努力粘贴在这里。这将是所有人都很容易帮助你更好更快,谢谢你的代码。一个小的修正只是…'选择。。。。从表a'而不是表b。
INSERT INTO table_b (user_id, domi, ipiresia)
   SELECT NEW.user_id, NEW.domi, NEW.ipiresia
     FROM table_a
    WHERE NOT EXISTS (select 1 from table_b where user_id = NEW.user_id);