Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> INSERT INTO SELECT, kopiowanie rekordu
kamil_lk
post
Post #1





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


a możesz po polski co chcesz osiągnąć ?
Go to the top of the page
+Quote Post
kamil_lk
post
Post #3





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
mar1aczi
post
Post #4





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Da się. Zachęcam INSERT ... SELECT
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  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;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 10:48