Mam automatyczny przyrost, klucz podstawowy w MySQL o nazwie ID i jest to INT. W miarę jak moja aplikacja rośnie, a ja otrzymuję więcej użytkowników, robią więcej wpisów. Co się stanie, gdy moja INT osiągnie maksymalną wartość 2 147 483 647? Czy mogę po prostu przejść na BIGINT?Co się dzieje, gdy automatyczny przyrost klucza podstawowego w MySQL osiąga maksymalną wartość:
Odpowiedz
W MySQL
official documentation stanowi:
Gdy kolumna osiąga górną granicę typu danych następnego próba generowania numeru sekwencji zawiedzie. Jeśli to możliwe, użyj atrybutu UNSIGNED , aby umożliwić większy zakres.
I tak, można zmienić typy wartości auto_increment
. W tym punkcie, dokumentacja radzi używać:
[...] najmniejsza liczba całkowita typ danych dla kolumny AUTO_INCREMENT , który jest wystarczająco duży, aby pomieścić maksymalną wartość sekwencji będzie trzeba.
Tak, można zmienić tabelę i zmienić z INT na BIGINT bez problemów.
Ponadto, być może trzeba zmienić typ danych wszędzie tam, gdzie jest to jako FK
+1 Tak, i warto wspomnieć, że trzeba zmienić typy danych FK * przed * zaktualizowaniem PK, do którego się odwołują. W przeciwnym razie można utworzyć wartości PK, których nie można odwoływać się do tabel podrzędnych. –
chciałbym podzielić się osobistym doświadczeniem miałem tylko o tym.
Używanie Nagios + Check_MK + NDOUtils. NDOUtils przechowuje wszystkie kontrole w tabeli o nazwie nagios_servicechecks. Klucz podstawowy to auto_increment int signed
.
Co stanie się z MySQL, gdy ten limit będzie dostępny? Cóż, w moim przypadku MySQL usunął wszystkie rekordy, ale ostatnie. Stół jest teraz prawie pusty. Za każdym razem, gdy wstawiany jest nowy rekord, stary zostaje usunięty.
Nie wiem, dlaczego tak się dzieje, ale faktem jest, że straciłem wszystkie moje dokumenty.
IDOUtils, używane z Icingą (nie Nagios), rozwiązały ten problem zmieniając int przez biginta.
- 1. Co się dzieje, gdy moja() jest warunkowa?
- 2. co się dzieje, gdy wątek wyrzuca wyjątek?
- 3. Co się dzieje, gdy dostawcy typu zmieniają się w F #?
- 4. Co się dzieje w __libc_start_main?
- 5. Mysql - Dodaj auto_increment do klucza podstawowego
- 6. Co się dzieje, gdy oczekujesz na już ukończone zadanie?
- 7. Co dzieje się w BeginProcessRequest()?
- 8. uzyskać maksymalną wartość kolumny w MySQL DB
- 9. co się dzieje, gdy dwukrotnie importuję moduł w pythonie
- 10. Co się dzieje, gdy wywołasz `if key in dyict`
- 11. Co się stanie, gdy pula połączeń Npgsql osiągnie wartość maksymalną Max.
- 12. Co dzieje się, gdy autodopasowanie koliduje z istniejącymi danymi w MySQL?
- 13. Co dokładnie dzieje się, gdy nie można użyć polecenia unbind()?
- 14. Co się dzieje, gdy daję MyObject obj = new MyObject()
- 15. Co się dzieje, gdy wtyczka docker-maven próbuje zbudować obraz?
- 16. Co dzieje się, gdy połączenia z MongoDB nie są zamknięte?
- 17. Co się dzieje, gdy mongodb jest za mało pamięci?
- 18. Usuwanie duplikatów wpisów w bazie danych MySQL bez klucza podstawowego
- 19. Uzyskaj nowy identyfikator klucza podstawowego rekordu z kwerendy wstawiania mysql?
- 20. Co się dzieje, gdy pamięć podręczna varnish jest pełna?
- 21. Co się dzieje, gdy wywoływana jest funkcja setState()?
- 22. Android - Co się dzieje, gdy urządzenie jest odblokowane?
- 23. Co dokładnie dzieje się, gdy funkcja Go zwraca wiele wartości
- 24. Co się dzieje z LOST String obiektów
- 25. Uzyskaj maksymalną wartość dla każdego klucza w Spark RDD
- 26. Tabele bez klucza podstawowego
- 27. Dlaczego MySQL używa tabeli tymczasowej do usunięcia klucza podstawowego?
- 28. Dodawanie klucza podstawowego do tabeli MySQL i automatyczne wypełnianie go
- 29. Jak zdefiniować złożonego klucza podstawowego w SQLAlchemy
- 30. Unary "~" operator - Co dokładnie się tutaj dzieje?
dlaczego nie używasz BIGINT na pierwszym miejscu? –
Być może zduplikowane pytanie http://stackoverflow.com/questions/2615417/what-happens-when-auto-increment-on-integer-column-reaches-tm-max-value-in-data – rmarimon
Cóż, moja aplikacja jest teraz bardzo mały i myślałem, że wystarczy użyć INT. To dość podobne pytanie. dzięki – FosAvance