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://r...@127.0.0.1/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 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to