Module: ActiveRecord::SaveMany::MySQL

Included in:
ConnectionAdapters::MysqlAdapter, JdbcSpec::MySQL
Defined in:
lib/activerecord_save_many/save_many.rb

Instance Method Summary collapse

Instance Method Details

#save_many_sql(klass, table_name, columns, rows, options) ⇒ Object



119
120
121
122
123
124
125
126
127
# File 'lib/activerecord_save_many/save_many.rb', line 119

def save_many_sql(klass, table_name, columns, rows, options)
  
  sql = [(if options[:replace] then "replace" else "insert" end), 
         ("delayed" if options[:async]), 
         ("ignore" if options[:ignore])].compact.join(' ') + 
    " into #{table_name} (#{columns.join(',')}) values " + 
    rows.map{|vals| "(" + vals.map{|v| klass.quote_value(v)}.join(",") +")"}.join(",") +
    (" on duplicate key update "+columns.map{|c| options[:updates][c] || "#{c}=values(#{c})"}.join(",") if options[:update]).to_s
end