ORALCE
MERGE INTO BUS_TEST a1 Using (SELECT ? CODE from dual) a2
ON (a1.CODE=a2.CODE )WHEN MATCHED THEN
UPDATE SET a1.CODE_NAME=?,a1.VIDEO_TYPE=?
WHEN NOT MATCHED THEN
INSERT (CODE,CODE_NAME ,VIDEO_TYPE,CREATE_BY,STATUS)
VALUES (?,?,?,1,2);
注意:merge into 在批量插入的时候,假如第一批插入的是一个空表,由于a1.code一开始为null,是无法实现去重的。
解决方法:先往表里面插入一条数据,是表存在数据之后,然后再进行批量插入
这种现象只出现在11g 在10g里面是可以批量插入的
MYSQL
insert ignore into BUS_TEST (CODE, CODE_NAME ,VIDEO_TYPE,CREATE_BY,STATUS) values(?,?,?,1,2) ON DUPLICATE KEY UPDATE CODE_NAME = ? , VIDEO_TYPE =?