没有主键的表,批量导入,使用insert into,用aaa,bbb,ccc,ddd4个字段做唯一。
没有主键的表,批量导入,使用insert into,用aaa,bbb,ccc,ddd4个字段做唯一。
如果不想在 Java 程序中去重,可以使用 sqlserver 的 merge 语句进行操作(其实就是一个存在则更新,不存在则插入的语义)。
示例如下:
MERGE INTO Table1 T1
USING (SELECT #{item.a} AS a, #{item.b} AS b) T2
ON ( T1.a=T2.a) // 这里就是唯一值检查,但表中存在相同 a 时
WHEN MATCHED THEN
UPDATE SET T1.b = 2
WHEN NOT MATCHED THEN
INSERT (a,b) VALUES('1001',2);
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
这种情况建议你在 java 端做好去重处理再入库,可操作性也更强。