我有一个DB2存储过程和触发器正在执行一组插入。这些插入语句中的一些可能已经存在于表中。我试图避免在每次插入之前检查行,因为我认为它可能会增加处理开销。 我试图找出Sybase提供的'ignore_dup_row'索引属性的DB2等价物。如果没有与此类似的DB2,那么在尝试执行重复插入时忽略事务回滚的可行选项还有其他选择。
答案 0 :(得分:1)
使用合并声明:
merge into t as x
using (
values (...) -- new row
) y (c1, c2, ..., cn)
on x.[key] = y.[key]
when not matched then
insert (c1,c2,...cn) values (y.c1,y.c2,...y.cn);
如果您逐个插入行,您还可以为' 23505'添加一个继续处理程序。在您的存储过程中。