]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
add update method
authorJonathan Ellis <jbellis@gmail.com>
Mon, 31 Jul 2006 21:40:31 +0000 (21:40 +0000)
committerJonathan Ellis <jbellis@gmail.com>
Mon, 31 Jul 2006 21:40:31 +0000 (21:40 +0000)
lib/sqlalchemy/ext/sqlsoup.py

index ab19f6e3c219de3b8f7fc0f0a37b3e7efdb6e244..431939e2e970f28baf9514e7ae15d7be02282bfa 100644 (file)
@@ -84,11 +84,15 @@ apply here as to the select methods.
     >>> db.loans.insert(book_id=book_id, user_name=user.name)
     MappedLoans(book_id=2,user_name='Bhargan Basepair',loan_date=None)
     >>> db.flush()
+    >>> db.loans.delete(db.loans.c.book_id==2)
 
-    >>> db.loans.delete(db.loans.c.book_id==2) # doctest: +ELLIPSIS
-    <...>
+You can similarly update multiple rows at once.  This will change the book_id to 1 in all loans whose book_id is 2:
 
+    >>> db.loans.update(db.loans.c.book_id==2, book_id=1)
+    >>> db.loans.select_by(db.loans.c.book_id==1)
+    [MappedLoans(book_id=1,user_name='Joe Student',loan_date=datetime.datetime(2006, 7, 12, 0, 0))]
 
+       
 Joins
 =====
 
@@ -202,7 +206,9 @@ class TableClassType(type):
     def _selectable(cls):
         return cls._table
     def delete(cls, *args, **kwargs):
-        return cls._table.delete(*args, **kwargs).execute()
+        cls._table.delete(*args, **kwargs).execute()
+    def update(cls, whereclause=None, values=None, **kwargs):
+        cls._table.update(whereclause, values).execute(**kwargs)
     def __getattr__(cls, attr):
         if attr == '_mapper':
             # called during mapper init