PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgresql, atualize se existir uma linha com algum valor exclusivo, senão insira


Isso foi perguntado muitas vezes. Uma possível solução pode ser encontrada aqui:https://stackoverflow.com/a/6527838/552671

Esta solução requer um 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);

Com o Postgres 9.1 é possível fazer isso com uma consulta:https://stackoverflow.com/a/ 1109198/2873507