On Nov 1, 2011, at 7:23 AM, Paul wrote:

> What's the cleanest way to perform a multiple insert or update? ie, if the 
> record
> already exists an update operation is performed or if not an insert is 
> performed.

that's a funny usage of terminology - a "multiple" insert would normally be 
construed as meaning an INSERT that has many rows at once, which is a different 
issue.

As I read this I wasn't clear what you were asking for, the "MERGE" SQL 
construct, or just asking about ORM merge.   After I wrote a whole reply here 
based on the SQL construct I realized you were talking about the ORM.

If you have a bunch of objects, all of which you can populate with their 
primary key, and you'd like some to result in INSERTS and others in UPDATE, 
then yes you can use Session.merge() in a loop.     I would try to pre-load all 
the existing rows, if possible, into a temporary collection - ideally limited 
to those rows you know you're operating upon.  That would make the operation of 
Session.merge() much faster as it can locate each object in the local identity 
map rather than emitting a SELECT for each one.


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to