sql 插入重复记录和先查询再插入

在进行数据操作的时候,经常会碰到这样的情况

插入多行数据(其中有几行可能是重复的),如果该记录不存在就插入,存在就无视。

使用一个for循环插入,如果不加检测,那么必将会触发约束问题。 想问问各位,当你们碰到插入约束问题的时候,是先select一遍检查是否存在,再选择是否执行insert,还是无脑insert无视产生的异常呢?

阅读 14.9k
3 个回答

可以参考的方法,来源于Google。

其中oracle的merge试过,其他两种没试过,仅供参考!

直接插,冲突就忽略。因为你事先检查后也不能确保插的时候不会冲突(好吧,很多时候你确实能够确保,比如当时只有你一个人在操作数据库)。有些方言也许会支持在冲突时干什么。

另外,批量插入用一条 insert 就可以了吧。

建议用replace into

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进