我在 MySQL 中有以下简单的插入查询
insert into eventimages (eventid, imageid) values (x, y)
我想对其进行修改,以便插入仅在未创建重复行时发生。 我猜我需要在某个地方包含类似
的内容if not exists (select * from eventimages where eventid = x and imageid = y)
任何人都可以帮助语法。
干杯
最佳答案
防止重复的“正确”方法是在列对上放置唯一约束/索引:
create unique index eventimages_eventid_imageid on eventimages(eventid, imageid);
那么这个条件就会一直保证为真。常规插入将失败,创建副本的 update
也会失败。以下是忽略此类错误的两种方法:
insert ignore into eventimages (eventid, imageid)
values (x, y);
这将忽略插入中的所有 错误。那可能有点矫枉过正。您还可以:
insert into eventimages(eventid, imageid)
values (x, y)
on duplicate key update eventid = x;
update
语句是空操作。目的只是为了抑制重复键错误。
关于mysql - If Not Exists 语法 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196615/