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

Как може синтаксисът INSERT ... ON CONFLICT (id) DO UPDATE... да се използва с ID на последователност?

Добре, току-що го разработих. Прочетох тази страхотна статия от Нийл Конуей:http://www.neilconway.org/docs/sequences /

Където той показва използването на DEFAULT ключова дума, за да каже на DB да използва стойността на последователността за колоната.

И така, ето актуализирания пример, който вече работи:

INSERT INTO tbltest (
    tbltest_ID,
    tbltest_Name,
    tbltest_Description) 
VALUES 
(DEFAULT, 'new record','new record description'),
(4, 'existing record name','existing record description')
ON CONFLICT (tbltest_ID) DO UPDATE SET (
    tbltest_Name,
    tbltest_Description) = (
    excluded.tbltest_Name,
    excluded.tbltest_Description) RETURNING *;

Надявам се това да помогне на някого;-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция COPY в PostgreSQL

  2. C# се свързва с база данни на postgres

  3. Извличане на секунди от таблицата с интервали / Прехвърляне на запис към интервал?

  4. Условен оператор INSERT INTO в postgres

  5. Как да върна резултата от временната таблица във функцията postgresql