Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: INSERT INTO SELECT
Forum PHP.pl > Forum > Bazy danych > MySQL
kamil_lk
Cześć.
Czy jest możliwość skopiowania rekordu do tej samej tabeli z nowym primary_key?
Robiąc w ten sposób:
  1. INSERT INTO `table_name` SELECT * FROM `table_name` WHERE `id` = x

wywala, że rekord o danym primary key istnieje.
Drugi sposób to:
  1. INSERT INTO `table_name`(`name_table`, `name_table`) SELECT `name_table`, `name_table` FROM `table_name` WHERE `id` = x

gdzie `name_table` nie jest kluczem tabeli.
Drugi sposób wydaje się być w porządku w przypadku, gdy tabela nie zmieni swoich kolumn.
Czy da się to jakoś zrobić tak, aby kopiować wszystko poza polem primary_key?
Pyton_000
a możesz po polski co chcesz osiągnąć ?
kamil_lk
w drugim zapytaniu oczywiście mają być nazwy kolumn, czyli:
  1. INSERT INTO `table_name`(`name_column`, `name_colum`) SELECT `name_colum`, `name_column` FROM `table_name` WHERE `id` = x

Cytat
a możesz po polski co chcesz osiągnąć ?

Sklonować rekord w tej samej tabeli.
mar1aczi
Da się. Zachęcam INSERT ... SELECT
Pyton_000
  1. CREATE TEMPORARY TABLE chan2 ENGINE=MEMORY SELECT * FROM channel WHERE chanid=21051;
  2. UPDATE chan2 SET chanid=21109; ## Change the unique key
  3. ## Update anything else that needs to be updated.
  4. INSERT INTO channel SELECT * FROM chan2;
  5. DROP TABLE chan2;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.