Im Datenbank-Umfeld nicht selber frickeln, schon gar nicht SELECT MAX(), sondern eine Sequenz benutzen.
Ich lese nichts von "Datenbank" - möglicherweise hinterlegt der OP seine Benutzer in einem Plaintext-File oder in einem XML-Baum.
Falls es sich tatsächlich um eine Datenbank handelt, hat MudGuard schon alles nötige gesagt.