为了账号安全,请及时绑定邮箱和手机立即绑定

如何在MySQL中“插入,如果不存在”?

如何在MySQL中“插入,如果不存在”?

梵蒂冈之花 2019-05-27 13:37:12
如何在MySQL中“插入,如果不存在”?我开始使用谷歌搜索,发现这篇文章讨论了互斥表。我有一张约有1400万条记录的表格。如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?unique对某个字段的约束是否保证insert如果它已经存在则会失败?似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

INSERT INTO `table` (value1, value2) SELECT 'stuff for value1', 'stuff for value2' FROM `table` WHERE NOT EXISTS (SELECT * FROM `table` 
      WHERE value1='stuff for value1' AND value2='stuff for value2') LIMIT 1

或者,外部SELECT语句可以引用DUAL以便处理表最初为空的情况:

INSERT INTO `table` (value1, value2) SELECT 'stuff for value1', 'stuff for value2' FROM DUAL
WHERE NOT EXISTS (SELECT * FROM `table` 
      WHERE value1='stuff for value1' AND value2='stuff for value2') LIMIT 1


查看完整回答
反对 回复 2019-05-27
  • 3 回答
  • 0 关注
  • 536 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信