Method: ActiveRecord::ConnectionAdapters::SQLite3Adapter#build_insert_sql
- Defined in:
- activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
#build_insert_sql(insert) ⇒ Object
:nodoc:
408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 |
# File 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb', line 408 def build_insert_sql(insert) # :nodoc: sql = +"INSERT #{insert.into} #{insert.values_list}" if insert.skip_duplicates? sql << " ON CONFLICT #{insert.conflict_target} DO NOTHING" elsif insert.update_duplicates? sql << " ON CONFLICT #{insert.conflict_target} DO UPDATE SET " if insert.raw_update_sql? sql << insert.raw_update_sql else sql << insert. { |column| "#{column} IS excluded.#{column}" } sql << insert.updatable_columns.map { |column| "#{column}=excluded.#{column}" }.join(",") end end sql << " RETURNING #{insert.returning}" if insert.returning sql end |