【发布时间】:2026-01-11 01:40:01
【问题描述】:
目前我在尝试将插入附加到我的 sqlalchemy 会话时遇到问题。
给我错误的行:
DB_SESSION.add(TABLE.insert().values(...))
错误:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'sqlalchemy.sql.dml.Insert' is not mapped
我的表架构:
TABLE = Table(
'tablename', metaData,
Column('value1', NVARCHAR(5), primary_key=True),
Column('value2', Integer, primary_key=True),
Column('value3', NVARCHAR(30)),
Column('value4', NVARCHAR(50)),
Column('value5', Date)
)
在该表上运行选择工作正常。例如:
query = TABLE.select().where((...) and (...))
for row in WAREHOUSE_SQL_CONNECTION.execute(query):
(...)
【问题讨论】:
-
this question 的答案可能对你有用。
-
@SuperShoot 阅读完该问题后,我找不到与我的问题相关的任何内容。例如,我确实知道引擎和连接执行之间的区别。
-
我认为this answer 是相关的,特别是WRT 将会话描述为
ORM特有的构造,而您正试图通过它发出core选择。换句话说,Session.add()需要一个 ORM 映射类,而不是核心 sql 构造。该问题中的任何答案都提供了如何执行核心 sql 语句的很好的示例。
标签: python python-3.x sqlalchemy