首页 > 解决方案 > 覆盖 Sequel multi_insert 中使用的 multi_insert_sql_strategy

问题描述

有没有办法覆盖multi_insert_sql_strategy使用方法时指定的multi_insert?我正在使用 ODBC 适配器:separate作为策略。我连接到的数据库(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

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

标签: rubyodbcsnowflake-cloud-data-platformsequel

解决方案


是的,您可以覆盖该策略:

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

一般来说,您可能需要考虑为 Snowflake 开发 Sequel 适配器,因为这是适配器应该负责的事情。


推荐阅读