In message <mailman.2489.1257197791.2807.python-l...@python.org>, Robert Kern wrote:
> On 2009-11-02 14:47 PM, Lawrence D'Oliveiro wrote: > >> For instance, I'm not aware of any database API that lets me do this: >> >> sql.cursor.execute \ >> ( >> "update numbers set flags = flags | %(setflags)u where >> projectid = %(projectid)s" "%(match_listid)s and number = >> %(number)s" >> % >> { >> "projectid" : SQLString(ProjectID), >> "match_listid" : >> ("", " and listid = %s" % SQLString(ListID))[ListID >> != None], >> "number" : SQLString(number), >> "setflags" : flags, >> } >> ) > > When programmatically generating SQL, I like to use SQLAlchemy. This use > case is handled with .where() on Update expression objects. Personally, I > find manipulating the SQLAlchemy expression objects clearer, safer, and > more portable than building the raw SQL through string interpolation. Doesn't seem to support bulk insertions à la this <http://www.codecodex.com/wiki/Useful_MySQL_Routines#Bulk_Insertion>. Or even literal lists as per the SQLStringList routine on the same page. -- http://mail.python.org/mailman/listinfo/python-list