我知道Dataset#multi_insert
和Dataset#insert
。执行多次插入,但是否有一个选项可以在唯一约束检查激活时跳过特定的插入
您可以使用insert_conflict
方法。
"通过更新冲突行,使用ON CONFLICT。如果没有选项,则使用ON CONFLICT什么都不做!">
DB[:table].insert_conflict.insert(a: 1, b: 2)
# INSERT INTO TABLE (a, b) VALUES (1, 2)
# ON CONFLICT DO NOTHING
它也适用于multi_insert
DB[:table].insert_conflict.multi_insert([{a: 1, b: 2}, {a: 3, b: 4}])
# INSERT INTO TABLE (a, b) VALUES (1, 2), (3, 4)
# ON CONFLICT DO NOTHING