sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kan syntaxen INSERT ... ON CONFLICT (id) DO UPDATE... användas med ett sekvens-ID?

Ok har precis löst det. Jag läste denna fantastiska artikel från Neil Conway:http://www.neilconway.org/docs/sequences /

Där han visar användningen av DEFAULT nyckelord för att tala om för DB att använda sekvensvärdet för kolumnen.

Så här är det uppdaterade exemplet som nu fungerar:

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

Hoppas detta hjälper någon;-)




  1. Konstigt beteende med full yttre sammanfogning i Oracle - hur skulle det kunna förklaras?

  2. Django:hur använder man flera databaser?

  3. Hur man matar ut PL/SQL korrekt

  4. Visar användarnamn och användar-id från $_SESSION