From 516c669f8a8aec24f1283fb0a6a9eeb42f24b175 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 31 Jul 2006 21:40:31 +0000 Subject: [PATCH] add update method --- lib/sqlalchemy/ext/sqlsoup.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index ab19f6e3c2..431939e2e9 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -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 -- 2.47.2