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
|