Method: Myq::Core#make_bulk_insert_sql

Defined in:
lib/myq/core.rb

#make_bulk_insert_sql(table, data, update_columns) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/myq/core.rb', line 16

def make_bulk_insert_sql(table, data, update_columns)
  first = data.class == Array ? data.first : data
  auto_create_table(table, first)
  columns = table_info(table).to_a
  values_array = []
  if data.class == Array
    data.each do |record|
      values_array << to_value_string(columns, record)
    end
  else
    values_array << to_value_string(columns, data)
  end
  sql = %Q{
  INSERT INTO #{table}
  (#{columns.map { |column| "\`" + column['COLUMN_NAME'] + "\`" }.join(',')})
  VALUES
  #{values_array.join(",\n")}
  #{make_duplicate_key_update_sql(update_columns)}
  }
  sql
end