bgu*_*ach 9 python orm sqlalchemy temporary
我的程序中需要一个临时表.我已经看到这可以通过这种方式使用"mapper"语法实现:
t = Table(
't', metadata,
Column('id', Integer, primary_key=True),
# ...
prefixes=['TEMPORARY'],
)
Run Code Online (Sandbox Code Playgroud)
看到这里
但是,我的整个代码都使用了声明性基础,这是我所理解的,我想坚持下去.有可能使用混合方法, 但如果可能的话我会避免它.
这是我的声明性类的简化版本:
import SQLAlchemy as alc
class Tempo(Base):
"""
Class for temporary table used to process data coming from xlsx
@param Base Declarative Base
"""
# TODO: make it completely temporary
__tablename__ = 'tempo'
drw = alc.Column(alc.String)
date = alc.Column(alc.Date)
check_number = alc.Column(alc.Integer)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
编辑新问题:
现在这个类看起来像这样:
import SQLAlchemy as alc
class Tempo(Base):
"""
Class for temporary table used to process data coming from xlsx
@param Base Declarative Base
"""
# TODO: make it completely temporary
__tablename__ = 'tempo'
__table_args__ = {'prefixes': ['TEMPORARY']}
drw = alc.Column(alc.String)
date = alc.Column(alc.Date)
check_number = alc.Column(alc.Integer)
Run Code Online (Sandbox Code Playgroud)
当我尝试在此表中插入数据时,我收到以下错误消息:
sqlalchemy.exc.OperationalError: (OperationalError) no such table:
tempo u'INSERT INTO tempo (...) VALUES (?, ?, ?, ?, ?, ?, ?, ?)' (....)
Run Code Online (Sandbox Code Playgroud)
似乎表只是通过声明而不存在.我见过像create_all()这样的东西可能是解决方案(看到新的想法如何在彻底解释时很有趣)
再说一次,非常感谢你!
可以使用__table_args__吗?见http://docs.sqlalchemy.org/en/latest/orm/extensions/declarative.html#table-configuration
class Tempo(Base):
"""
Class for temporary table used to process data coming from xlsx
@param Base Declarative Base
"""
# TODO: make it completely temporary
__tablename__ = 'tempo'
__table_args__ = {'prefixes': ['TEMPORARY']}
drw = alc.Column(alc.String)
date = alc.Column(alc.Date)
check_number = alc.Column(alc.Integer)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4456 次 |
| 最近记录: |