Skocz do zawartości
MultiServer.pl

[MySQL]AUTO_INCREMENT

Rekomendowane odpowiedzi

Witam chciałbym zresetować wartość AUTO_INCREMENT aby zaczynała się od 1

Jest na to pewne polecenie ALTER TABLE nazwa_tabeli AUTO_INCREMENT = 1

Lecz ja chce jeszcze aby pobrało wszystkie rekordy które są w tabeli i co rekord ustawiło od 1.

 

Przykładowo jest tak

 

Uid

1

3

4

6

8

 

 

A chcę

 

Uid

1

2

3

4

5

 

I czy ktoś z was pamięta na to polecenie?

Bo ręczna zmiana nie wchodzi w gre.

Z góry dziękuję za pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na pewno będzie UPDATE + SELECT + ORDER BY - ale to kiepski sposób, ten przedstawiony przez PaweL jest lepszy.

Nie znam struktury twojej bazy, ale zazwyczaj unikalnych pól używa się do kojarzenia tabel (INNER/LEFT/RIGHT JOIN), tak więc jeżeli pozmieniasz te uid to będziesz mieć dziury w bazie (jeżeli pole, które chcesz zmienić jest skojarzone z inną tabelą).

Edytowane przez PrzMas

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Posiłkując się rozwiązaniem stąd:
http://stackoverflow.com/a/6935648

ALTER TABLE tablename DROP id

ALTER TABLE tablename ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id), AUTO_INCREMENT=1

Osobiście nie radziłbym ci zmieniać tych wszystkich id jeśli używasz ich jako referencji w innych tabelach, ale w normalnym przypadku droga wolna.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×