sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan kan syntaksen INSERT ... ON CONFLICT (id) DO UPDATE... bruges med et sekvens-ID?

Ok har lige løst det. Jeg læste denne fantastiske artikel fra Neil Conway:http://www.neilconway.org/docs/sequences /

Hvor han viser brugen af ​​DEFAULT nøgleord for at fortælle DB'en at bruge sekvensværdien for kolonnen.

Så her er det opdaterede eksempel, der nu virker:

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 *;

Håber dette hjælper nogen;-)




  1. Forespørgselstimeout i pg-promise

  2. Hvordan eksporteres tabel som CSV med overskrifter på Postgresql?

  3. Sådan indsætter du værdier i en MYSQL-tabel ved hjælp af Select-Statements

  4. Simple getColumnName(0)-kald kaster Ugyldigt kolonneindeks:getValidColumnIndex