You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLAlchemy Core中如何为GENERATED ALWAYS标识列添加OVERRIDING SYSTEM VALUE

解决方法

SQLAlchemy 1.4及更高版本的PostgreSQL方言已经原生支持OVERRIDING SYSTEM VALUE语法,你只需要在构造插入语句时传入对应的参数即可,修改后的代码如下:

insert_stmt = postgresql.insert(target, overriding_system_value=True).values(vals)
primary_keys = [key.name for key in inspect(target).primary_key]

stmt = insert_stmt.on_conflict_do_nothing(index_elements=primary_keys)
conn.execute(stmt)

如果你使用的SQLAlchemy版本低于1.4,没有内置该参数,可以通过手动拼接语法片段的方式实现:

from sqlalchemy import text

insert_stmt = postgresql.insert(target).values(vals)
# 插入OVERRIDING SYSTEM VALUE子句
insert_stmt = insert_stmt + text(" OVERRIDING SYSTEM VALUE")
primary_keys = [key.name for key in inspect(target).primary_key]

stmt = insert_stmt.on_conflict_do_nothing(index_elements=primary_keys)
conn.execute(stmt)

内容的提问来源于stack exchange,提问作者kjay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:57:03