sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres UPSERT återanvänd kolumnvärden från INSERT vid UPDATE

Ja, det finns specialtabellen EXCLUDED för ändamålet:

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

Som förklarar manualen :

Fungerar även för INSERT med flera rader:

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. Vad är skillnaden mellan INNER JOIN, LEFT JOIN, RIGHT JOIN och FULL JOIN?

  2. tecken 0xc286 i UTF-8-kodning har ingen motsvarighet i WIN1252....Vid konvertering med iconv kraschar postgres restore

  3. Hur kör man Djangos testdatabas endast i minnet?

  4. Ta text från en fil och infoga i en mysql-tabell med hjälp av ett skript