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

postgreSQL:hvordan man dublerer en række

Du skal oprette et nyt ID for den nyligt indsatte række:

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ævnt af ClodoaldoNeto kan du gøre tingene lidt nemmere ved blot at udelade ID-kolonnen og lade standarddefinitionen gøre sit job:

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 dette tilfælde behøver du ikke at kende sekvensnavnet (men det er lidt mindre indlysende, hvad der foregår).



  1. SQL-forespørgsel for at returnere N rækker fra dual

  2. Er der en måde at indlæse tekstdata til databasen i PostgreSQL?

  3. Advarsel:mysql_query():3 er ikke en gyldig MySQL-Link-ressource

  4. Hvordan opretter man forbindelse til MySQL på Amazon EC2 fra Linux / Mac?