【发布时间】:2020-05-10 00:28:48
【问题描述】:
是否可以在 Sequel 中插入多行,如何插入? 谁能给我解释一下?
我尝试过这样的事情:
DB[:table].insert([:x, :y], [[1, 2], [3, 4]])
但是没有用。
【问题讨论】:
是否可以在 Sequel 中插入多行,如何插入? 谁能给我解释一下?
我尝试过这样的事情:
DB[:table].insert([:x, :y], [[1, 2], [3, 4]])
但是没有用。
【问题讨论】:
您可以使用Dataset#multi_insert。
虽然文档描述它发出两个INSERTs,但似乎只发出一个具有多个值的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, 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)"]
【讨论】: