sql >> Database >  >> RDS >> PostgreSQL

Hoe kan de INSERT ... ON CONFLICT (id) DO UPDATE... syntaxis worden gebruikt met een sequentie-ID?

Oke het is net gelukt. Ik las dit geweldige artikel van Neil Conway:http://www.neilconway.org/docs/sequences /

Waar hij het gebruik van de DEFAULT . laat zien trefwoord om de database te vertellen dat de reekswaarde voor de kolom moet worden gebruikt.

Dus hier is het bijgewerkte voorbeeld dat nu werkt:

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

Ik hoop dat dit iemand helpt;-)




  1. MySQL subselectie prestatievraag?

  2. Enkele tabellen uit de PostgreSQL-database vinden en verwijderen?

  3. MySQL - wat doet skip-locking in my.cnf?

  4. MysqlDump van Powershell en Windows-codering