sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL Upsert (On Conflict) se stejnými hodnotami v Insert a Update

Použijte excluded klíčové slovo:

INSERT INTO cars 
  (car_id, car_type, car_model) 
values
  (1, 'tesla', 'model s')
ON CONFLICT (car_id) DO UPDATE SET 
  car_type = excluded.car_type,
  car_model = excluded.car_model;

To také funguje správně s více řádky, např.:

INSERT INTO cars 
  (car_id, car_type, car_model) 
values
  (1, 'tesla', 'model s'), 
  (2, 'toyota', 'prius')
ON CONFLICT (car_id) DO UPDATE SET 
  car_type = excluded.car_type,
  car_model = excluded.car_model;



  1. Jaký je rozdíl mezi „není v“ a „neexistuje“?

  2. Jak ovládáme dynamické řazení podle pole v tabulce?

  3. Vytvořte dotaz v SQL Server 2017

  4. Jak získat aktuální verzi systému správy databází MySQL (DBMS)?