Zaktualizowanie id

S1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

Witam, czy można zaktualizować id tabeli w taki sposób, że jeśli posiadam:
1 | aqw
4 | dfw
8 | ghj

Pierwsza kolomna to id i chodzi mi o to aby zaktualizowac (uporzątkować na nowa) tak aby wygladało to w ten sposób:
1 | aqw
2 | dfw
3 | ghj

Jeśli tak to jak to zrobić ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Dlaczego chciałbyś tak trzymać dane?
Zasadniczo nie powinno się modyfikować kluczy podstawowych.

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0

Jeśli ID danej tabeli nie jest z niczym powiązane (relacje, jakieś logi, transakcje) i są to tylko dane np do nauki i robisz coś wyłącznie do testów - to możesz zrobić to tak:

  1. Wyeksportuj wszystkie dane z tej tabeli, bez uwzględniania pola ID (tu masz opis jak to zrobić - https://stackoverflow.com/questions/8138193/how-to-export-in-phpmyadmin-not-include-id-column-the-auto-increment-coloumn)
  2. Ustaw auto_increment w danej tabeli na 0/1 (nigdy nie pamiętam) w taki sposób ALTER TABLE twoja_tabela AUTO_INCREMENT = 1;
  3. Zaimportuj poprzednie dane - wszystko będzie ponumerowane tak jak chcesz.

Tak jak pisze @Patryk27 - normalnie takich operacji się nie robi, miej to na uwadze jak już skończysz się douczać w tym temacie.

kate87
  • Rejestracja: dni
  • Ostatnio: dni
0

Jeśli to Primary Key to po pierwsze ingerencja w spójność danych, silnik bazy tego nie przepuści i nie powinien.

Chyba że masz sekwencję na kluczu, zrobisz truncate na tabeli i założysz od nowa sekwencję od 1, a na koniec wrzucisz dane. Bo jeśli klucz leci po sekwencji to i tak kolejne id będzie 9 a nie 4 jak u Ciebie.

Tylko nie za bardzo rozumiem ideę takiego porządkowania. Jeśli gdzieś już wykorzystujesz to ID jako klucz obcy to namieszasz sobie w danych.

Edit Jakie zbiegowisko :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.