【问题标题】:Insert into temp table using SQLAlchemy使用 SQLAlchemy 插入临时表
【发布时间】:2021-05-18 12:34:43
【问题描述】:

我想使用 SQLAlchemy 从 CTE 的结果创建一个临时表。

表格定义:

class Data(Base):
  __tablename__ = 'data'
  c_id = Column(Integer, primary_key=True)
  # ...

# temp table
class CIdTmp(Base):
  __tablename__ = '#c_id_tmp'
  c_id = Column(Integer, primary_key=True) 

这是我的 CTE:

c_id_cte = (session.query(Data.c_id)).cte('c_id_cte')

我尝试像这样将insert()from_select() 结合起来:

session.execute(CIdTmp.insert().from_select(['c_id'], c_id_cte))

但它会产生这个错误:

AttributeError: type object 'CIdTmp' has no attribute 'insert'

【问题讨论】:

    标签: python sql-server sqlalchemy temp-tables


    【解决方案1】:

    好的,我发现我必须得到一个Table 对象才能执行insert 表达式。可以通过在我的模型上使用___table__ 来完成。

    session.execute(CIdTmp.__table__.insert().from_select(['c_id'], c_id_cte))
    

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 2016-01-31
      • 2012-08-19
      • 2018-11-20
      • 2011-11-14
      相关资源
      最近更新 更多