我有一个关系表“ NoteTags”,可以通过简单的模式将“ note”与“ tag”连接起来:
tag_id: integer, foreign key
note_id: integer, foreign key
表的主键是tag_id,note_id。
我当前的插入语句如下:
insert(table).values(elements).returning(*primary_key_columns)
当前,如果您尝试插入一个已经存在的tag_id / note_id组合,它将无法插入。
通常,我会使用on_conflict_do_nothing()
,但这是行不通的,因为然后“返回”不会返回该行的值,而我需要它来执行该操作。
在发生冲突时如何让它“什么都不做”,但仍然returning()
来做它的事情?
我已经看到了建议使用on_conflict_update()
的类似问题的解决方案(只需执行“冗余”更新,即将字段更新为相同的值。)但是,我所有的字段都已经在索引中有冲突(即主键),所以我似乎没有剩余任何字段可以“更新”。