PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

postgreSQL:как да дублирам ред

Трябва да създадете нов идентификатор за нововмъкнатия ред:

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;

Както спомена ClodoaldoNeto, можете да направите нещата малко по-лесни, като просто оставите колоната ID и оставите дефиницията по подразбиране да си свърши работата:

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;

В този случай не е необходимо да знаете името на последователността (но е малко по-малко очевидно какво се случва).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. не разбирам json_agg в този контекст

  2. Как да създадете еквивалент на колона за идентичност на SQL Server в Postgres

  3. Действието на Debezium Heartbeat не се задейства

  4. Вмъкване на масив с помощта на Sequel gem в PostgreSQL

  5. Грешка в PostgreSQL:аргументът на низа на заявката на EXECUTE е нула