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

Postgres UPSERT genbrug kolonneværdier fra INSERT på UPDATE

Ja, der er den særlige tabel EXCLUDED til formålet:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string>') 
ON CONFLICT (id) DO UPDATE SET data = EXCLUDED.data;

Ligesom manualen forklarer :

Fungerer også til multi-row INSERTs:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string1>') 
     , (2, '<data_string2>') 
     , (3, '<data_string3>') 
ON CONFLICT (id) DO UPDATE
SET data = EXCLUDED.data;



  1. Gem data på arabisk i MySQL-databasen

  2. Afkrydsningsfelt med Array inde i looping Falskt resultat?

  3. Identitetslignende kolonne, men baseret på Group By-kriterier

  4. Hvordan gentager jeg en tabel med de kombinerede resultater af to lignende forespørgsler fra to forskellige databaser?