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

Postgresql, opdater, hvis der findes en række med en unik værdi, ellers indsæt

Dette er blevet spurgt mange gange. En mulig løsning kan findes her:https://stackoverflow.com/a/6527838/552671

Denne løsning kræver både en UPDATE og 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);

Med Postgres 9.1 er det muligt at gøre det med én forespørgsel:https://stackoverflow.com/a/ 1109198/2873507



  1. mysql:konverter timediff() til sekunder

  2. Hvordan kan jeg lukke Oracle DbLinks i JDBC med XA-datakilder og transaktioner for at undgå ORA-02020-fejl?

  3. Hvordan indstilles 'start med' af sekvensen for at vælge forespørgselsresultat i SQL-server?

  4. 4 måder, lagerdatabaser gavner detailhandlen