Hi folks,

I have recently started to learn ORM tools in python. I am trying to
write an update query based on a where clause. This is the original
SQL:
UPDATE mail SET fl=20 WHERE f =1  and uid =2 ;

This is what I did in SA:

flTot = 19
fNo = 2
uidNo = 5


a = column('f') + bindparam('fNo')
b = column('uid') + bindparam('uidNo')
ac = a.params({'fNo':fNo})
bc = b.params({'uidNo':uidNo})

ae = ClauseElement.params(ac)
be = ClauseElement.params(bc)

print and_(ae,be)

cache_fl = mail.update(and_(ae,be), values={mail.c.fl:135})

print mysql_db.execute(cache_fl)


The problem is it sets the value of flag for every row in the table
and not just for the where clause condition. Also, I wanted to pick up
the value from variables, so I used bindparams. Is it correct?

Regards,
abhi

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