engine = create_engine('sqlite://') # create MetaData meta = MetaData() # bind to an engine meta.bind = engine
create_all()creates foreign key constraints between tables usually inline with the table definition itself,and for this reason it also generates the tables in order of their dependency. There are options to change this behavior such that ALTERTABLEis used instead.
用create_all的时候会根据外键的依赖性,顺序创建表。删除的时候亦然。
绑定一个数据库:
engine = create_engine('sqlite:///:memory:') meta = MetaData() employees = Table('employees',meta,Column('employee_id',Integer,primary_key=True),Column('employee_name',String(60),nullable=False,key='name'),Column('employee_dept',ForeignKey("departments.department_id")) ) SQLemployees.create(engine)
连接池设置:
create_engine()大多时候会集成一个QueuePool。
在用sqlite的时候,会用SingletonThreadPoolorNullPool 因为sqlite的锁机制。
链接只会在用到的时候建立.
可以用poolclass参数指定pool的类型:
from sqlalchemy.pool import QueuePool engine = create_engine('sqlite:///file.db',poolclass=QueuePool)
参数为 Nullpoll的时候禁用连接池。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。