How to UPSERT (MERGE, INSERT … ON DUPLICATE UPDATE) in PostgreSQL?

前端 未结 6 1401
灰色年华
灰色年华 2020-11-21 05:42

A very frequently asked question here is how to do an upsert, which is what MySQL calls INSERT ... ON DUPLICATE UPDATE and the standard supports as part of the

6条回答
  •  不要未来只要你来
    2020-11-21 05:58

    WITH UPD AS (UPDATE TEST_TABLE SET SOME_DATA = 'Joe' WHERE ID = 2 
    RETURNING ID),
    INS AS (SELECT '2', 'Joe' WHERE NOT EXISTS (SELECT * FROM UPD))
    INSERT INTO TEST_TABLE(ID, SOME_DATA) SELECT * FROM INS
    

    Tested on Postgresql 9.3

提交回复
热议问题