sql >> Database >  >> RDS >> PostgreSQL

Postgres UPSERT hergebruikt kolomwaarden van INSERT op UPDATE

Ja, er is de speciale tafel EXCLUDED voor het doel:

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

Zoals de handleiding legt uit :

Werkt ook voor INSERT's met meerdere rijen:

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. Postgres:veel-op-veel versus meerdere kolommen versus matrixkolom

  2. MySQL XDevAPI Een succesvolle status retourneren

  3. psql fatale rol bestaat niet

  4. Schakel over van JsonStringType naar JsonBinaryType wanneer het project zowel MySQL als PostgreSQL gebruikt