我正在尝试使用Peewee对PostgreSQL数据库执行INSERT ... ON CONFLICT ... UPDATE查询,我想保留我正在更新动态的列,但是当我使用本机插值时,数据库会添加单个引用我的专栏,如何解决这个问题?
updates = {
'column1': 'value1',
'column2': 'value2'
}
cols = tuple(updates.keys())
vals = tuple(updates.values())
ids = list(peewee.RawQuery(Table_Model,
"INSERT INTO table %s VALUES %s \
ON CONFLICT ON CONSTRAINT constraint_name \
DO UPDATE SET %s = %s \
RETURNING id;",
cols, vals, cols, vals).dicts())
我收到以下错误:
syntax error at or near "'column1'"
LINE 1: INSERT INTO table ('column1', 'column...
注意:我正在使用原始SQL,因为据我所知,Peewee尚不支持PostgreSQL的.on_conflict(),但如果我错了,请告诉我,我可以修改。