Mam istniejącą bazę danych używającą PHP, MySQL i phpMyAdmin.
Kiedy użytkownicy stają się członkami mojej witryny, potrzebuję, aby system utworzył dla nich unikalny numer członkostwa, składający się z pięciu cyfr. na przykład 83773. Przypuszczam, że jest to jak generowanie losowego hasła, z wyjątkiem tego, że chcę tylko numery dla moich członków. Ten numer identyfikacyjny musi być niepowtarzalny dla każdego członka.
Czy byłoby możliwe ustawienie klucza podstawowego na auto_increment w mojej tabeli użytkowników i ustawienie go tak, aby zaczynał się od 10000, a następnie automatycznie zwiększał się za każdym razem, gdy rejestruje się członek?
Ponadto, czy istnieje maksymalna liczba, do której mógłby wzrosnąć numer identyfikacyjny klucza podstawowego?
Czy jest to niezawodny i bezpieczny sposób używania numeru identyfikacyjnego klucza podstawowego jako numeru członkowskiego?
źródło
Odpowiedzi:
Istnieją możliwe kroki, aby włączyć automatyczne zwiększanie wartości dla kolumny. Wydaje mi się, że wersja phpMyAdmin to 3.5.5, ale nie jestem pewien.
Kliknij kartę Tabela > Struktura > w obszarze Akcja kliknij opcję Podstawowa (ustaw jako podstawową), kliknij opcję Zmień w wyskakującym okienku, przewiń w lewo i zaznacz opcję A_I . Upewnij się również, że wybrałeś Brak jako Domyślny
źródło
Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
W phpMyAdmin przejdź do odpowiedniej tabeli i kliknij kartę „Operacje”. Po lewej stronie pod opcjami tabeli będziesz mógł ustawić bieżącą wartość AUTO_INCREMENT.
źródło
Po prostu uruchom proste zapytanie MySQL i ustaw liczbę automatycznych inkrementów na dowolną liczbę.
Jeśli chodzi o maksimum, o ile wiem, nie ma ani sposobu, aby ograniczyć taką liczbę.
Jest całkowicie bezpiecznym i powszechną praktyką ustawianie numeru identyfikacyjnego jako klucza podstawowego, automatycznie zwiększając int. Istnieją alternatywy, takie jak użycie PHP do generowania numerów członkostwa w określonym formacie, a następnie sprawdzenie, czy numer nie istnieje przed wstawieniem, jednak dla mnie osobiście wybrałbym podstawową wartość auto_inc id.
źródło
źródło
W phpMyAdmin, jeśli ustawisz pole w swojej tabeli na automatyczne zwiększanie, a następnie wstawisz wiersz i ustawisz wartość tego pola na 10000, będzie ono kontynuowane.
źródło
@AmitKB, Twoja procedura jest prawidłowa. Chociaż ten błąd
Błąd zapytania: # 1075 - Niepoprawna definicja tabeli; może istnieć tylko jedna kolumna automatyczna i musi być zdefiniowana jako klucz
można rozwiązać, najpierw oznaczając pole jako klucz (za pomocą ikony klucza z etykietą podstawową), chyba że masz inny klucz, to może nie działać.
źródło
Nie możesz ustawić maksymalnej wartości (poza wyborem typu danych, który nie może pomieścić dużych liczb, ale nie ma takiej, która ma limit, o który prosisz). Możesz to sprawdzić za pomocą LAST_INSERT_ID () po wstawieniu, aby uzyskać identyfikator nowo utworzonego członka, a jeśli jest zbyt duży, to możesz to zrobić w kodzie aplikacji (np. Usuń i odrzuć członka).
Dlaczego chcesz mieć górny limit?
źródło
Wynika to z
wp_terms
,wp_termmeta
iwp_term_taxonomy
stoły, który miał wszystkie ich ID nie jest ustawionyAUTO_INCREMENT
Aby to zrobić przejdź do phpmyadmin, kliknij na bazę danych,
wp_terms
tabelę, kliknij na zakładkę struktury, po prawej stronie zobaczysz zakładkę o nazwieA_I(AUTO_INCREMENT)
, zaznacz ją i zapisz (robisz to tylko dla pierwszej opcji, jeśliwp_term
tak robię to tylko dlaterm_id
).Zrób to samo dla,
wp_termmeta
awp_term_taxonomy
to rozwiąże problem.źródło
(a) Po prostu kliknij swoją bazę danych i wybierz tabelę. Kliknij „Operacje”. W sekcji „opcje tabeli” zmień wartość AUTO_INCREMENT na żądaną wartość, w tym przypadku: 10000 i kliknij „Idź”. (Zobacz załączony obraz)
(b) Alternatywnie możesz uruchomić polecenie SQL w zakładce SQL po wybraniu tabeli. Po prostu wpisz „ALTER TABLE nazwa_tabeli AUTO_INCREMENT = 10000;” następnie kliknij „Idź”. Otóż to!! Obraz USTAWIANIE WARTOŚCI AUTOMATYCZNEGO PRZYROSTU (a)
Obraz USTAWIANIE WARTOŚCI AUTOMATYCZNEGO PRZYROSTU (B)
źródło