PostgreSQL: insert on duplicate key

19 Aug 2014

Да-да. Постгрес не умеет делать

insert \* on duplicate key ...

Но это легко эмулируется последовательностью запросов.

UPDATE table SET field='C', field2='Z' WHERE id=3;  
INSERT INTO table (id, field, field2)  
       SELECT 3, 'C', 'Z'  
       WHERE NOT EXISTS (SELECT 1 FROM table WHERE id=3);