我正在尝试设置一个MySQL查询,如果table1中的一行已经存在,将在table2中插入一行,否则它只会将行插入table1 .
我需要找到一种方法来调整以下查询,使用现有行的id将行插入table2 .
INSERT INTO表1(主机,路径)VALUES( 'youtube.com', '/ Watch ')IF NOT EXISTS(SELECT * FROM表1 WHERE主机= 'youtube.com' AND路径= '/ Watch ' LIMIT 1);
有点像这样:
INSERT ...如果不是EXISTS(..)ELSE INSERT INTO table2(table1_id)VALUES(row.id);
除了我不知道这个的语法 .
3 回答
您可以在table1上使用触发器,唯一键或主键,以及INSERT IGNORE .
如果在table1中插入已存在的值,INSERT IGNORE将不会返回重复键错误 . 触发器将仅检查table1中是否已存在该值并将其插入table2 . 如果需要,还可以在table2上添加唯一键,并在触发器中使用INSERT IGNORE .
天啊!
你可以用_1365279实现这个目标 . 我相信 .
免责声明:未经测试 .
这是我提出的解决方案: