mysql若不存在则插入写法

Posted webkb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql若不存在则插入写法相关的知识,希望对你有一定的参考价值。

最开始想到的办法是先SELECT * FROM table WHERE f1=‘d1‘,然后判断之后插入

优化方法 * 可以改为随便一个数字 比如1,然后因为f1不是唯一字段,所以最后在家LIMIT 1

后来听说可以用NOT EXIST来判断,当然了不能直接用INSERT INTO … NOT EXIST (SELECT * FROM table WHERE f1=‘d1‘)这样写,参考下面:

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‘)

因为EXIST只判断存在不存在,用*还是什么以及LIMIT 1,mysql都会无视的,直接按最佳优化执行的。

再后来才知道INSERT IGNORE INTO代替INSERT INTO

以上是关于mysql若不存在则插入写法的主要内容,如果未能解决你的问题,请参考以下文章

mysql5.7基础 create database if not exists... 判断数据库是否存在 若不存在则创建

数据库优化插入更新数据的方式

如果不存在则插入mysql,如果存在则不更新

Python学习-字典练习:简单通讯录

mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入

SQLServer触发器的问题