我想更新mysql数据库中的一行并使用该列的默认值。 我试着做这个
session.query(TableName).update({'column1': None,
'column2': None,
'column3': None}, False)
但它不起作用。任何想法?
答案 0 :(得分:0)
要将设置一个值设置为默认值,该列必须已设置为NOT NULL(SQLAlchemy中为nullable=False
)并具有DEFAULT。这可以在DB级别或在DB中定义结构时完成。
在更新查询中,如果将该值设置为NULL(或Python中的None
),那么它将获得默认设置。 (这对MySQL来说是正确的,不确定SQLAlchemy是否试图干预。)
答案 1 :(得分:0)
如果您在该字段上具有服务器默认值,则应执行以下操作:
session.query(TableName).update({'column1': sa.text('default'),
'column2': sa.text('default'),
'column3': sa.text('default')}, False)