是否可以在续集中插入多行,以及如何完成? 任何人都可以向我解释一下吗?
我尝试过这样的事情:
DB[:table].insert([:x, :y], [[1, 2], [3, 4]])
但它没有用。
答案 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)"]