sql >> Databasteknik >  >> RDS >> PostgreSQL

postgreSQL:hur man duplicerar en rad

Du måste skapa ett nytt ID för den nyligen infogade raden:

INSERT INTO web_book( 
   id, page_count, year_published, file, image, 
   display_on_hp, name, description, name_cs, 
   name_en, description_cs, description_en
)
SELECT nextval('web_book_id_seq'), 
       page_count, 
       year_published, 
       file, 
       image, 
       display_on_hp, 
       name, 
       description, 
       name_cs, 
       name_en, 
       description_cs, 
       description_en 
FROM web_book WHERE id=3;

Som nämnts av ClodoaldoNeto kan du göra saker lite enklare genom att helt enkelt utelämna ID-kolumnen och låta standarddefinitionen göra sitt jobb:

INSERT INTO web_book( 
   page_count, year_published, file, image, 
   display_on_hp, name, description, name_cs, 
   name_en, description_cs, description_en
)
SELECT page_count, 
       year_published, 
       file, 
       image, 
       display_on_hp, 
       name, 
       description, 
       name_cs, 
       name_en, 
       description_cs, 
       description_en 
FROM web_book WHERE id=3;

I det här fallet behöver du inte känna till sekvensnamnet (men det är lite mindre uppenbart vad som händer).



  1. Hur använder man DataContext.ExecuteCommand och får det exekverade lagrade proc-returvärdet?

  2. MySQL standardvärde som andra fälts värde

  3. Oracle utlöser den kontrollbegränsningen på månadsbasis

  4. Praktisk gräns för SQL-frågans längd (särskilt MySQL)