在续集中插入多个插入行

时间:2016-04-18 07:57:36

标签: ruby sequel

是否可以在续集中插入多行,以及如何完成? 任何人都可以向我解释一下吗?

我尝试过这样的事情:

DB[:table].insert([:x, :y], [[1, 2], [3, 4]])

但它没有用。

2 个答案:

答案 0 :(得分:3)

您可以使用Dataset#multi_insert

虽然该文档描述了它发出两个INSERT,但它似乎只发出一个具有多个值的INSERT,至少对于PostgreSQL而言。

>> DB[:table].multi_insert([{x:1,y:2}, {x:3,y:4}])
INSERT INTO "table" ("x", "y") VALUES (1, 2), (3, 4)

答案 1 :(得分:0)

如果要使用值数组array([[1, 2], [3, 4]])来插入值哈希([{x:1,y:2}, {x:3,y:4}])而不是列数组,则可以使用Dataset#import

> DB[:test].import([:x, :y], [[1, 2], [3, 4]])
# => ["INSERT INTO `test` (`x`, `y`) VALUES (1, 2), (3, 4)"]