在执行INSERT包含许多行的语句时,我想跳过可能导致失败的重复条目.经过一些研究,我的选择似乎是使用:
ON DUPLICATE KEY UPDATE 这意味着需要花费一些不必要的更新,或者 INSERT IGNORE 这意味着邀请其他类型的未能在未经宣布的情况下失败. 我对这些假设是对的吗?简单地跳过可能导致重复的行并继续执行其他行的最佳方法是什么?
IF EXISTS (select * from users where username = 'something') THEN
select id from users where username = 'something';
ELSE
insert into users (username) values ('something');
END IF;
Run Code Online (Sandbox Code Playgroud)