1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
# frozen-string-literal: true
module Sequel
class Dataset
module Replace
# Execute a REPLACE statement on the database (deletes any duplicate
# rows before inserting).
def replace(*values)
execute_insert(replace_sql(*values))
end
# SQL statement for REPLACE
def replace_sql(*values)
clone(:replace=>true).insert_sql(*values)
end
# Replace multiple rows in a single query.
def multi_replace(*values)
clone(:replace=>true).multi_insert(*values)
end
# Databases using this module support REPLACE.
def supports_replace?
true
end
private
# If this is an replace instead of an insert, use replace instead
def insert_insert_sql(sql)
sql << (@opts[:replace] ? 'REPLACE' : 'INSERT')
end
end
end
end
|