sql >> Databáze >  >> RDS >> PostgreSQL

postgreSQL:jak duplikovat řádek

Pro nově vložený řádek musíte vytvořit nové ID:

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;

Jak zmínil ClodoaldoNeto, můžete si věci trochu usnadnit tím, že jednoduše vynecháte sloupec ID a necháte výchozí definici, aby svou práci udělala:

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;

V tomto případě nepotřebujete znát název sekvence (ale je trochu méně zřejmé, co se děje).



  1. Načtení nejběžnějších klíčových slov ze sloupce tsvector

  2. Jak importovat soubor SQL do databáze ignorující X řádků v souboru?

  3. Nejlepší způsob, jak otestovat, zda existuje řádek v tabulce MySQL

  4. MySQL optimalizace obrovské tabulky