【发布时间】:2021-03-18 02:19:59
【问题描述】:
我想在一个表中插入多个项目并在冲突时更新该表。这就是我想出的以下内容
from sqlalchemy.dialects.postgresql import insert
meta = MetaData()
jobs_table = Table('jobs', meta, autoload=True, autoload_with=engine)
stmt = insert(jobs_table).values(jobs)
stmt.on_conflict_do_update(
index_elements=['j_id'],
set_= dict(active=True)
)
result = engine.execute(stmt)
return result.is_insert
j_id 是一个唯一字段,如果该行已经存在,我将尝试更新它。如果该行已经存在,我会收到以下错误。
(psycopg2.IntegrityError) duplicate key value violates unique constraint "j_id"
DETAIL: Key (j_id)=(0ea445da-bd1d-5571-9906-0694fa85728a) already exists.
这里有什么我遗漏的吗?
【问题讨论】:
标签: sqlalchemy upsert on-duplicate-key