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
idwartość
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
idwartość idostatnio wstawionego wiersza, specyficznego dla sesjiidwierszy 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 .