PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql, aggiorna se esiste una riga con un valore univoco, altrimenti inserisci

Questo è stato chiesto molte volte. Una possibile soluzione può essere trovata qui:https://stackoverflow.com/a/6527838/552671

Questa soluzione richiede sia un UPDATE e INSERT .

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);

Con Postgres 9.1 è possibile farlo con una query:https://stackoverflow.com/a/ 1109198/2873507