2010-12-30 18 views
10

Właśnie tworzyłem nową tabelę przy użyciu MySQL Query Browser i zauważyłem, że w kolumnie Auto Increment jest zaznaczenie. Jak to działa?Jak działa funkcja automatycznego przyrostu MySQL?

Podczas dodawania do bazy danych programowo, czy po prostu dodaję numer, a następnie baza danych automatycznie zwiększa ten numer?

Za każdym razem, gdy NOWY użytkownik zarejestruje się w mojej witrynie, chcę, aby ich identyfikator klienta (tylko liczba całkowita) automatycznie się zwiększał, więc nie muszę próbować losowo generować unikalnego numeru.

Czy to można zrobić po prostu?

Dziękujemy!

+2

referencyjny: http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html –

+0

Dzięki! - Tak naprawdę nie muszę nic robić. Po prostu doda numer po dodaniu nowego wiersza? :) –

+0

Zrobiłbym tę społeczność dla początkujących tutaj. – t0mgs

Odpowiedz

15

Czy po dodaniu do bazy danych programowo dodaję numer, a następnie baza danych automatycznie zwiększa ten numer?

Tak, tak działa auto_increment.

  • wartość będzie zwiększana dla każdego nowego rzędu

  • Wartość unikalną duplikaty nie są możliwe

  • Jeżeli rząd zostanie usunięty, kolumna tej rzędu auto_increment nie będzie ponownie przydzielony.

  • Wartość auto_increment ostatniego wstawionego wiersza można uzyskać za pomocą funkcji mySQL LAST_INSERT_ID() ale musi nazwać zaraz po zapytaniu INSERT, w tym samym połączenie z bazą danych

mySQL Reference

+0

Dzięki! - Przyjmie w ciągu 9 minut. :) –

+1

4 godziny, 59 minut późno, ale nadal akceptowałem lol. : P –

+3

Wartości 'AUTO_INCREMENT' niekoniecznie są unikalne: http://sqlfiddle.com/#!2/85e93/1 – MichaelRushton

0

Tak, to jest dokładnie cel AUTO_INCREMENT. Sprawdza, jaka jest aktualna wartość przyrostu dla tej tabeli, i przechowuje automatycznie tę wartość plus 1 dla nowego wiersza, który przychodzi. Możesz pominąć to pole z wyciągów INSERT, a MySQL obsłuży je dla każdego nowego wiersza, który nadejdzie, nadając każdemu wierszowi swój unikalny identyfikator.

1

Po włączeniu automatycznego przyrostu identyfikator zawsze będą dodawane automatycznie, gdy nowy rekord jest wykonany .. Przykład:

Jeśli masz 1 rekord z ID 1 w tabeli i dodać nowy rekord, identyfikator automatycznie 2.

4

1 więcej, Możesz również wstawić własną wartość (np. wartość losową).

1

Tak. Kolumny Auto_Increment działają tak, jak mówią na puszce. Wskazówki

  • gdy Insert - nia, należy NULL lub pominięcie kolumna

  • Używaj LAST_INSERT_ID() (lub równoważnika API), aby uzyskać ostatnie wygenerowane wartości.

  • ze względów bezpieczeństwa i logiki biznesowej, zwykle lepiej jest nie używać bezpośrednio wartości klucza dla identyfikatora klienta. Zastanów się, czy zamiast tego użyć hashowanych/randomizowanych zastępczych kluczy klienta.

Ta

Powiązane problemy