如何在SQL中使用NOT EXISTS和COMPOSITE KEYS从POJO插入数据
发布时间:2020-12-12 06:30:53 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用DB2 DBMS. 场景1: myTable有一个复合键(key1,key2),其中key1和key2都是来自yourTable的外键. 我想将yourTable中的新数据插入到myTable中,但前提是myTable中还没有key1,key2组合. insert into myTable(key1,key2,someData)values(x,y,z)where NOT E
我正在使用DB2 DBMS.
场景1: myTable有一个复合键(key1,key2),其中key1和key2都是来自yourTable的外键. 我想将yourTable中的新数据插入到myTable中,但前提是myTable中还没有key1,key2组合. insert into myTable(key1,key2,someData) values(x,y,z) where NOT EXISTS (want to check if composite key is not already present) 场景2: 我使用属性data1,data2和data将数据放入yourTable的java对象中. 我想在Scenario1中插入带有检查的上述数据. data1 data2不应该已经出现在myTable中. 我该如何实现这一目标?我认为我们不能在insert语句中使用SELECT语句. insert into myTable(key1,data) values(data1,data2,data) where (data1 + data2 are already not present in myTable) 我怎样才能做到这一点? 解决方法insert into mytable(...) select ... from yourtable y left join mytable m on y.key1 = m.key1 and y.key2 = m.key2 where m.key is null 要么 insert into mytable(...) select ... from yourtable y where not exists (select 1 from mytable m where y.key1 = m.key1 and y.key2 = m.key2) 对于你的第二个场景,它看起来与上面的查询类似 insert into mytable(...) select ... where not exists (select 1 from mytable m where javakey1 = m.key1 and javakey2 = m.key2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |