Aqua: (PERL) -> (MySQL) ->UNIQUE Feld -> Welcher Error an Perl?

Beitrag lesen

Hallo!

Ein Webdienst bietet einen internen bereich.
Der Login findet mit der kombination von Username und Passwort statt.

Bei der anmeldung wird überprüft,
oder bereits ein anderer user der gewünschten Usernamen hat.

Wenn nicht, dann wird die Anmeldung vervollstaendigt und
der User bekommt seinen login mit dem gewünschten usernamen
und passwort.

jetzt gibt es aber ein Problem:

In der zwischenzeit waehrend der Ausgabe
"Gratuliere der Username ist noch vorhanden"
und der passwort-Eingabe und vervollstaendigung der Anmeldung
vergehen einige Sekunden bis Minuten Zeit.

Der Punkt:

In diesem Zeitraum könnte sich theoretisch ein anderer
User bereits angemeldet haben mit dem Usernamen,
der vorher als "Frei und registrierbar" angegeben wurde.

Und genau da kommen wir zur Frage:

Welche Möglichkeit habe ich in PERL den Fehler,
den MySQL zurückgibt, aufzufangen und dann einen
entsprechenden "Leider ist der Username schon vergeben"
text auszugeben, wenn MySQL versucht in dem UNIQUE Feld "username"
einen Bereits vorhanden Usernamen nochmals einzufügen...??

MySQL schreit ja dann auf weil das Feld UNIQUE ist und
wenn ich da ein 2. mal den selben wert einfügen will kommt ein error,
die Frage ist nur die ich das mit PERL so verarbeite
dass ich eine dementsprechende Meldung an den User im Browser ausgeben kann.

Ich mach ja nach dem 1. Test ob der Username eh frei ist
nur mehr ein  i$dbh->do("insert into table values ('','Aqua','pass')");
also fall der Name Aqua in der Zwischenzeit schon vergeben
wurde muss ich immer noch die Möglichkeit haben dem User
das auch mitzuteilen....

Danke!
Aqua