在数据库插入的场景中,我们可能会遇见这种情况:检测数据库是否含有即将要写入的数据。比如 province(省份)包含一个唯一字段:name,以往的做法是:
1:先执行一句查询的sql语句
1 select * from province where name='?'2:如果这条数据不存在,再执行插入语句
1 insert into province(name) values('?')
虽然说上面的方法能够完成这样的场景,但是不够优雅!所以我在想,有没有一个好的办法能够解决这样的问题呢?于是,我联想到几条sql语句
把当前时间转化成特定格式的字符串
1 select to_char(to_timestamp(extract(epoch from now() )::integer), 'YYYY-MM-DD')把代处理表中的数据插入到新表中
1 insert province (name) select name from pendding_province_list
于是,我开始着手改造insert插入语句12insert into province (name) select '?' where not exists (select * from province where name='?')
完美!