Hi,I can't use transaction with class Insert()/Update,someone can help
me ?thanks!
When i run Insert().execute() then will auto commit the transaction,I
don't want it auto commit...
############code########################
import sqlalchemy as sa
from sqlalchemy import MetaData
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy import orm
engine = sa.create_engine("mysql://[email protected]/test?
charset=utf8",pool_recycle=3600,echo=True,convert_unicode=True,pool_threadlocal=True,pool_size=20)
session = scoped_session(sessionmaker())()
metadata = MetaData()
metadata.bind = engine
if __name__=="__main__":
t_table = sa.Table("t", metadata,
autoload=True,autoload_with=engine)
class T(object):
pass
orm.mapper(T, t_table)
"""
mysql> desc t;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| pv | int(11) | NO | | 0 | |
+-------+---------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
"""
session.begin(subtransactions=True)
#Session.begin(subtransactions=True)
res = Insert(t_table,updateCol="pv=pv+1").execute(id=None,pv=6)
print res.last_inserted_ids()
res = Insert(t_table,updateCol="pv=pv+1").execute(id=None,pv=6)
print res.last_inserted_ids()
session.rollback()
##############out put##############################
2009-10-29 14:00:48,170 INFO sqlalchemy.engine.base.Engine.0x...c64c
SHOW VARIABLES LIKE 'character_set%%'
2009-10-29 14:00:48,173 INFO sqlalchemy.engine.base.Engine.0x...c64c
()
2009-10-29 14:00:48,177 INFO sqlalchemy.engine.base.Engine.0x...c64c
SHOW VARIABLES LIKE 'sql_mode'
2009-10-29 14:00:48,178 INFO sqlalchemy.engine.base.Engine.0x...c64c
()
2009-10-29 14:00:48,209 INFO sqlalchemy.engine.base.Engine.0x...c64c
SHOW CREATE TABLE t
2009-10-29 14:00:48,209 INFO sqlalchemy.engine.base.Engine.0x...c64c
()
2009-10-29 14:00:48,210 INFO sqlalchemy.engine.base.Engine.0x...c64c
SHOW VARIABLES LIKE 'lower_case_table_names'
2009-10-29 14:00:48,210 INFO sqlalchemy.engine.base.Engine.0x...c64c
()
2009-10-29 14:00:48,214 INFO sqlalchemy.engine.base.Engine.0x...c64c
INSERT INTO t (id, pv) VALUES (%s, %s)
2009-10-29 14:00:48,214 INFO sqlalchemy.engine.base.Engine.0x...c64c
[None, 6]
2009-10-29 14:00:48,215 INFO sqlalchemy.engine.base.Engine.0x...c64c
COMMIT
2009-10-29 14:00:48,216 INFO sqlalchemy.engine.base.Engine.0x...c64c
INSERT INTO t (id, pv) VALUES (%s, %s)
2009-10-29 14:00:48,216 INFO sqlalchemy.engine.base.Engine.0x...c64c
[None, 6]
2009-10-29 14:00:48,216 INFO sqlalchemy.engine.base.Engine.0x...c64c
COMMIT
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---