Wydaje się to subiektywne, ale powiedziałbym, że nie, koncepcyjnie nie jest to właściwe, ponieważ:
- chcesz ostatnio wstawiony wiersz
- ale Twoje zapytanie ma maksymalny
id
wartość
Tak, istnieje pewien związek między maksymalnym identyfikatorem a najnowszym wstawieniem, ale weź pod uwagę następujące kwestie:
- co by było, gdyby ostatnio wstawiony wiersz został usunięty?
Odpowiedź na MySQL:otrzymujesz różne wyniki. Zauważ, że nie musi być nawet wielowątkowości ani wielu procesów, aby to się nie powiodło. To dlatego, że są to dwie różne rzeczy (które wprawdzie często dają takie same wyniki).
select max(id) from <tablename>
w porównaniu z
select last_insert_id()
(Zgadnij, który jest właściwy.)
@Dems zwrócił uwagę, że PO jest niejednoznaczny. Wyjaśnię mój główny punkt:
Mówimy o trzech różnych informacjach:
- maksymalny
id
wartość id
ostatnio wstawionego wiersza, specyficznego dla sesjiid
wierszy ostatnio wstawionych do tabeli (niezależnie od sesji)
Niebezpieczne jest to, że czasami zapytanie o jedno daje właściwą odpowiedź dla drugiego — ale nie zawsze .