Die absolute Sicherheit gibt die Abfrage "SELECT MAX(ID) FROM ..." aber nun mal gar nicht in einer Multi-User-Umgebung mit hochfrequenten Eingaben.
Wer sagt denn, dass er
seine ID des INSERT's bekommt und nicht die letzte eingefügte (und damit maximale) ID eines anderen Users? Da es in diesem Beispiel ja auch nicht über
eine Transaktion geht funktioniert es so nicht zu 100%.
Genau dafür haben
DB-Systeme wie Firebird die RETURNING_VALUE im INSERT-Statement.