Jak uzyskać bieżącą wartość AUTO_INCREMENT dla tabeli w MySQL?
mysql
auto-increment
sapać
źródło
źródło
Odpowiedzi:
Możesz uzyskać wszystkie dane z tabeli za pomocą tego zapytania:
Możesz uzyskać dokładnie te informacje za pomocą tego zapytania:
źródło
DATABASE()
zamiast jawnej nazwy bazy danych.SELECT MAX(id) FROM table_name
?Myślę, że szukasz funkcji LAST_INSERT_ID () MySQL . Jeśli w wierszu polecenia, po prostu uruchom następujące polecenie:
Możesz również uzyskać tę wartość poprzez zapytanie SELECT:
źródło
Jeśli chcesz tylko znać numer, a nie podawać go w zapytaniu, możesz użyć:
Powinieneś zobaczyć auto_increment na dole
źródło
1
.Chociaż odpowiedź methai jest poprawna, jeśli ręcznie uruchomisz zapytanie, problem pojawia się, gdy 2 współbieżne transakcje / połączenia faktycznie wykonują to zapytanie w środowisku wykonawczym (na przykład).
Właśnie wypróbowałem ręcznie w środowisku MySQL z 2 połączeniami otwartymi jednocześnie:
Transakcja 1:
Transakcja 2:
Wstawianie transakcji 1 jest prawidłowe: Wstawianie transakcji 2 jest błędne: Kod błędu: 1062. Zduplikowany wpis „21” dla klucza „PODSTAWOWY”.
Dobrym rozwiązaniem byłaby odpowiedź jvdub , ponieważ dla każdej transakcji / połączenia 2 wstawki będą:
Transakcja 1:
Transakcja 2:
Ale musimy wykonać last_insert_id () zaraz po wstawieniu! I możemy ponownie użyć tego identyfikatora, aby wstawić go do innych tabel, w których oczekuje się klucza obcego!
Nie możemy również wykonać 2 zapytań w następujący sposób:
ponieważ tak naprawdę jesteśmy zainteresowani, aby pobrać / ponownie użyć tego identyfikatora w innej tabeli lub zwrócić!
źródło
last_insert_id()
AUTO_INCREMENT
wartości.Przykładowy kod wykonywalny mysqli:
źródło
Jeśli kolumna jest automatycznie zwiększana na serwerze SQL, to aby zobaczyć bieżącą automatycznie zwiększoną wartość, a jeśli chcesz edytować tę wartość dla tej kolumny, użyj następującego zapytania.
źródło
Zapytanie, aby sprawdzić procentowe „użycie” AUTO_INCREMENT dla wszystkich tabel jednego danego schematu (z wyjątkiem kolumn typu bigint bez znaku ):
źródło
Szukałem tego samego i ostatecznie stworzyłem metodę statyczną wewnątrz klasy Helper (w moim przypadku nazwałem ją App \ Helpers \ Database).
Metoda
Aby wywołać tę metodę i pobrać MySql AUTO_INCREMENT, wystarczy użyć:
Mam nadzieję, że to pomoże.
źródło