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
|