> -----Original Message----- > From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com] > On Behalf Of jos.carpente...@yahoo.com > Sent: 26 July 2011 18:27 > To: sqlalchemy@googlegroups.com > Subject: [sqlalchemy] Updating records in table not working > > I'm using Postgres as a database. I try to create new records or > update existing records with data. The data is parsed from a csv file. > Creating new records works fine. But when a record already exists, > the update fails with: > > > IntegrityError: (IntegrityError) duplicate key value violates unique > constraint "stock_item_pkey" > > I've looked at the SA documentation and as far as I can see the 'add' > does an insert or an update.
I think this is incorrect - 'add' always corresponds to 'INSERT' > I've also tried updata, but that fails > too and als mentions a depreciated statement. > > The new data is going to a single table. The PrimaryKey is the item > number (item with value itemno in snippet below). Since the item is > unique, I don't let Postgres create an id. > > new = Item(item=itemno, ...) > db.session.add(new) > db.session.commit() > > > I'm pretty new with SA and I might overlook something. How can I > solve this? > I *think* you should be able to use session.merge instead: http://www.sqlalchemy.org/docs/orm/session.html#merging temp = Item(item=itemno, ...) new = db.session.merge(temp) db.session.commit() (note that 'merge' returns a new object attached to the session) Hope that helps, Simon -- 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.