如何使用sqlalchemy为现有表创建临时表?

时间:2013-11-19 22:40:59

标签: python mysql sqlalchemy temp-tables

我有一个与以下类关联的表(在mysql-server中):

class Number(Base):
    __table_name__ = 'number'
    col0 = Column(...) # PRIMARY KEY
    col1 = Column(...)
    col2 = Column(...)
    col3 = Column(...)

我想在程序启动时为这个数字表创建一个临时表,这个临时表如下所示:

class tempNumber(Base):
      __table_name__ = 'temp_number'
      col0 = Column(...) # direct from Number.col0
      col1 = Column(...) # from Number.col1, but will be modified, for example tempNumber.col1 = Number.col1.replace(' ','')

我还尝试将以下行添加到类Number:

__table_args__ = {'prefixes': ['TEMPORARY']}

但是我的python程序告诉我表temp_number不存在。

还有一个问题是,如何快速复制数据?因为表号中有很多行。

1 个答案:

答案 0 :(得分:1)

  1. temp_number表实际上是否存在于基础数据库中?

  2. 通常,快速地将数据从一个表复制到另一个表不是通过sqlalchemy完成的,{{1}}在此类任务中有很大的开销。相反,它将根据您的基础数据库而有所不同。

  3. 例如,here's how one would do it in MySQLHere's a way to do it with PostgreSQL.但是,这通常不会复制索引等内容。那,您必须通过数据库驱动程序手动设置。