PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

postgreSQL:jak zduplikować wiersz

Musisz utworzyć nowy identyfikator dla nowo wstawionego wiersza:

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 wspomniał ClodoaldoNeto, możesz ułatwić sobie sprawę, po prostu pomijając kolumnę ID i pozwól domyślnej definicji wykonać swoje zadanie:

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;

W tym przypadku nie musisz znać nazwy sekwencji (ale nieco mniej oczywiste jest, co się dzieje).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WSTAW wiersze do wielu tabel w jednym zapytaniu, wybierając z zaangażowanej tabeli

  2. Wyodrębnij pierwszą numeryczną część pola

  3. Partycjonowanie listy w Postgres 12

  4. Nextval PostgreSQL i curval w tym samym zapytaniu

  5. Brak pliku gniazda /var/pgsql_socket/.s.PGSQL.5432 w Mountain Lion (OS X Server)