I have an app that does an update or insert (can't guarantee the entry exists to start with). I'm trying to increase efficiency and notice a commit after every insert or update. Is there a way to hold off on the commit until one final commit? Not using the ORM for this particular piece.
create a dict with the updated values: ... slotargs['part_num'] = row[DB_PART_NUM] slotargs['family'] = row[DB_FAMILY] ... create the update object (where slot is the Table object): u = slot.update().where( and_(slot.c.host_name == self.HostName, slot.c.row_num == row[DB_ROW_NUM], slot.c.col_num==row[DB_COLUMN_NUM], slot.c.tray_num == row[DB_TRAY_INDEX],slot.c.port_num == row[DB_PORT_INDEX] ) ).values(**slotargs) self.GCDB.updateOrInsert(u, slot, slotargs) .... function body for updateOrInsert.... # Arguments are: # SQL Alchemy update object bound to a table and database connection. # SQL ALchemy table object associated with above update # Dictionary of columns that are being updated, should include the primary key column(s) in case we do the insert # # Returns the result object. #-------------------------------------------------------------------------- def updateOrInsert(self, updObj, tableObj, columns): result = updObj.execute() # Attempt an update if result.rowcount == 0: # See if it succeeded i = tableObj.insert().values(**columns) # If not then create an insert object, columns must have primary keys for this table result = i.execute() # Now do the insert return result Thanks for the help! -- 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.