PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres upsert:rozróżnij wiersze nowe i zaktualizowane

Istnieje sposób bez dodawania kolumny do tabeli:

CREATE TABLE tbl(id int PRIMARY KEY, col int);
INSERT INTO tbl VALUES (1, 1);
INSERT INTO tbl(id, col)
VALUES (1,11), (2,22)
ON     CONFLICT (id) DO UPDATE
SET    col = EXCLUDED.col
RETURNING *, (xmax = 0) AS inserted;

Wyjaśnienie:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Projekt bazy danych - pola z wartościami null

  2. Tworzenie wysoko dostępnej bazy danych dla Moodle za pomocą PostgreSQL

  3. Obliczanie sumy pola na podstawie innych kolumn tabeli złączeń

  4. Postgres:Wiele do wielu vs. wiele kolumn vs. kolumna tablicy

  5. Procedura składowana Postgresql zwraca wybór zestawu wyników