Mam serwer MySQL 5 i tabelę w nim z autoinkrementem w polu id (klucz podstawowy). Teraz chcę dodać rekord pomiędzy i dlatego muszę zwiększyć wszystkie inne identyfikatory o jeden. Oto, co próbowałem:Przyrostowe pole id autoinkrecji o jeden
UPDATE myTable SET id=id+1 WHERE id >= 53
To nie działa, ponieważ na przykład rekord o identyfikatorze = 52 już istnieje. Jak mogę to zrobić? Jeśli zacznie od ostatniego wpisu i będzie aktualizował, powinien działać. Ale jak?
Podstawowym ma na celu zapewnienie tożsamości * dla wiersza, a nie kolejność * * je. Użyj oddzielnej kolumny, aby określić żądane zamówienie. Zmiana klucza podstawowego dla wiersza po wstawieniu go spowoduje tylko problemy. –
co zrobić, jeśli upuścić i ponownie utworzyć pole autoreklama? –
Upuszczenie i ponowne utworzenie kolumny (lub próba zmiany numeracji istniejących wierszy) nie będzie działać, szczególnie jeśli już użyłeś identyfikatorów jako klucza obcego. (Przerywa połączenia z istniejącymi wierszami.) Naprawdę powinieneś słuchać @MarkByers - "Zmiana klucza podstawowego dla wiersza po wstawieniu go spowoduje tylko problemy." Zobacz także [to] (http://stackoverflow.com/questions/2106237/is-there-any-harm-in-resetting-the-auto-increment) Pytanie i odpowiedzi. –