On Apr 8, 2011, at 10:54 AM, gwozdziu wrote:

> Hi!
> 
> In SqlAlchemy 0.4 when I tried to save (using method "save") to
> database object which interferes row which already exists in database
> (for example I have table with primary key `id`, row with id = 3 in
> this table, and I am trying to save object with the same id = 3) the
> operation raises error that object is already persistent.
> 
> In Sqlalchemy 0.5.7 there is no "save" method, but there is "add"
> method. But when I'm trying to save (using "add" method) object which
> interferes row which is already in database - operation is successful.
> But I need to have some error raised in that situation, or maybe other
> solution that informs me that I'm not actually inserting object but
> updating.
> 
> What method can I use? I read documentation and I didn't found
> solution.
> 
> Am I missing something?

you should be getting an IntegrityError raised if you add() a new object to the 
session that has a primary key which is the same as one already in the 
database.   add() is the same as the former save_or_update() method, which 
would call straight down to save() if the object were pending.

When you refer to needing to know if you're inserting or updating, im not clear 
on what the issue is - if you have an object that is "detached", meaning it has 
a row in the DB, you add() it to a session, the session already has an object 
with that identity, you get an error.    So I'm not really sure what the 
specific problem is here.

-- 
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