[sqlalchemy] Re: Equivalent of UPDATE ... WHERE ... in ORM?

2009-01-30 Thread James

Perfect - thanks Mike!

As I'm using 0.4 (sorry, neglected to mention that) I've gone for the
table.update(...).execute() option and it works a treat.

On Jan 25, 12:25 am, Michael Bayer mike...@zzzcomputing.com wrote:
 the update() method on Query accomplishes this.  Make sure you read  
 the docstring for it which describes some various behaviors you'll  
 want to be aware of.

 alternatively, any SQL expression, like table.update(), UPDATE  
 table can be issued within the ORM's transaction using  
 session.execute().

 On Jan 24, 2009, at 7:14 PM, James wrote:



  Hi,
  Is there a way to update a large number of objects without looping
  through each one, using SA's ORM?

  E.g.
  I want to achieve the following:

  for o in session.query(MyClass).filter_by(prop='some value'):
     o.prop = 'new value'
     session.update(o)

  Without fetching and saving each object from the database. I.e.
  something which would produce SQL like this:

  UPDATE `my_class` SET `prop`='new value' WHERE `prop` = 'some value'

  If not, am I safe mixing and matching ORM operations with SQL
  operations like:
  u = my_classes.update(my_class.c.prop=='some value'), values=
  {'prop':'new value'})?

  Thanks!
  James
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Equivalent of UPDATE ... WHERE ... in ORM?

2009-01-24 Thread Michael Bayer

the update() method on Query accomplishes this.  Make sure you read  
the docstring for it which describes some various behaviors you'll  
want to be aware of.

alternatively, any SQL expression, like table.update(), UPDATE  
table can be issued within the ORM's transaction using  
session.execute().


On Jan 24, 2009, at 7:14 PM, James wrote:


 Hi,
 Is there a way to update a large number of objects without looping
 through each one, using SA's ORM?

 E.g.
 I want to achieve the following:

 for o in session.query(MyClass).filter_by(prop='some value'):
o.prop = 'new value'
session.update(o)

 Without fetching and saving each object from the database. I.e.
 something which would produce SQL like this:

 UPDATE `my_class` SET `prop`='new value' WHERE `prop` = 'some value'

 If not, am I safe mixing and matching ORM operations with SQL
 operations like:
 u = my_classes.update(my_class.c.prop=='some value'), values=
 {'prop':'new value'})?

 Thanks!
 James
 


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