覆盖 multi_insert_sql_strategy 在 Sequel multi_insert 中使用

Override multi_insert_sql_strategy used in Sequel multi_insert

有没有办法覆盖使用 multi_insert 等方法时指定的 multi_insert_sql_strategy?我正在使用回落到 :separate 的 ODBC 适配器作为策略。我连接到的数据库 (Snowflake) 支持 VALUES 子句中的多行,因此,我想利用 :values 作为策略。我还没有发现这是一个我可以通过的选项。

默认策略: https://github.com/jeremyevans/sequel/blob/9202d780b92626646c9faeff90a7f7b9d7b6c10d/lib/sequel/dataset/sql.rb#L1340

multi_insert代码: https://github.com/jeremyevans/sequel/blob/ff5d77cb60a61b41d3eb500344f287f0b9fbdb97/lib/sequel/dataset/actions.rb#L484

multi_insert 使用的 import 可用的选项: https://www.rubydoc.info/github/jeremyevans/sequel/Sequel%2FDataset:import

是的,您可以覆盖策略:

DB.extend_datasets do
  def multi_insert_sql_strategy; :values; end
end

一般来说,您可能需要考虑为 Snowflake 使用 Sequel 适配器,因为这是适配器应该处理的事情。