3. 回滚
回滚之前
mysql> select * from user; +----+------+----------+ | id | name | password | +----+------+----------+ | 1 | rain | 12345 | +----+------+----------+ 1 row in set (0.00 sec)
执行代码
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String from sqlalchemy.orm import sessionmaker # 创建连接 engine = create_engine("mysql+pymysql://root:root@127.0.0.1/cmz", encoding='utf-8', echo=False) Base = declarative_base() # 生成ORM基类 # 创建表结构 class User(Base): __tablename__ = 'user' # 表名 id = Column(Integer, primary_key=True) name = Column(String(32)) password = Column(String(64)) # 直接调用基类下的方法 Base.metadata.create_all(engine) # 实例与socket绑定,创建与数据库的绘画session class,注意,这里返回 # 给session的是一个class,不是实例 Session_class = sessionmaker(bind=engine) # 生成session实例,cursor Session = Session_class() # 创建用户 fake_user = User(name='leco', password="666666") Session.add(fake_user) # 回滚 Session.rollback() Session.commit()
mysql> select * from user; +----+------+----------+ | id | name | password | +----+------+----------+ | 1 | rain | 12345 | +----+------+----------+ 1 row in set (0.00 sec)
删除Session.rollback() 执行后结果
mysql> select * from user; +----+------+----------+ | id | name | password | +----+------+----------+ | 1 | rain | 12345 | | 2 | leco | 666666 | +----+------+----------+ 2 rows in set (0.00 sec)