如何使用Peewee将列引用干净地插入到PostgreSQL查询中?

时间:2017-12-19 23:18:44

标签: python sql postgresql peewee

我正在尝试使用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(),但如果我错了,请告诉我,我可以修改。

0 个答案:

没有答案