sql之数据不存在情况下才插入数据

  有些情况下,如果数据存在,则不作数据插入,如果数据不存在,才做数据插入。但是在insert语句中是不能带where关键字的,那又要一条sql来做判断和插入,就需要借用DUAL来处理了。

  
  用最原始的方法就是先

select * from user where name = 'lwx';

判断是否有name为lwx的user,如果不存在,则再执行插入

insert into user(id,name) values('5','lwx');

此方法需要执行2条sql语句,繁琐且效率低,为了改进此方法,遂采用如下方法:

insert into user(id,name) select '5','lwx' from DUAL 
where not exists (select 1 from user where name = 'lwx')
文章目录