SQLAlchemy INSERT IGNORE

spacemonkey picture spacemonkey · Feb 7, 2010 · Viewed 13.8k times · Source

How can I insert multiple data records into table ignoring duplicates. I am using SQLAlchemy.

Thank you!

Answer

joeforker picture joeforker · Feb 8, 2010

prefix_with("TEXT") adds arbitrary text between INSERT and the rest of the SQL. execute() accepts a list of dictionaries with the records you would like to insert or a single dictionary if you only want to insert a single record.

The SQLite syntax for the behavior you're looking for:

inserter = table_object.insert().prefix_with("OR REPLACE")
inserter.execute([{'column1':'value1'}, {'column1':'value2'}])