PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL Upsert (при конфликт) със същите стойности в Insert и Update

Използвайте excluded ключова дума:

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;

Това също работи правилно с множество редове, напр.:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Завъртане на множество колони с помощта на Tablefunc

  2. Как да разделите низ в PostgreSQL

  3. PSQLEException:ГРЕШКА:релация TABLE_NAME не съществува

  4. Регистрационни файлове на Heroku казват, че няма модул с име „urlparse“, когато използвам import urlparse

  5. Коя е най-добрата SQL библиотека за използване в Common Lisp?