如何在SQLAlchemy引擎INSERT语句中指定字段默认值?
使用SQLAlchemy engine.execute()插入时调用列默认值的方法
直接用SQLAlchemy的text()构造DEFAULT关键字传入占位符即可,具体操作如下:
- 先导入
text工具:
from sqlalchemy import text
- 执行INSERT语句时,在需要调用默认值的位置传入
text('DEFAULT'):
engine = create_engine("mysql+pymysql://...") engine.execute("INSERT INTO table VALUES (%s, %s, %s, %s)", v1, v2, text('DEFAULT'), v4)
这样SQLAlchemy会将对应占位符替换为MySQL的DEFAULT关键字,触发目标列的预设默认值,同时不会生成NULL值,完全符合NOT NULL约束要求。
注意:这种写法适配原生SQL占位符(如%s),若使用SQLAlchemy命名占位符(如:param),逻辑一致,同样传入text('DEFAULT')即可。
内容的提问来源于stack exchange,提问作者florian
相关产品推荐
相关产品推荐

