有些情况下,如果数据存在,则不作数据插入,如果数据不存在,才做数据插入。但是在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')