![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Gast
Beiträge: n/a
|
Hallo!
Ich möchte sicherstellen das jeder Benutzername in meiner Anwendung einzigartig ist. Jetzt habe ich in meiner mysql Tabelle das entsprechende Feld mit UNIQUE gekennzeichnet. Will ein Benutzer nun einen bereits existierenden Benutzernamen anlegen, schlägt die INSERT-Anweisung fehl. Soll ich nun vor meiner INSERT-Anweisung noch eine SELECT Abfrage einbauen oder kann ich mich zu 100% darauf verlassen. Was meint ihr? Yours Fat Tony |
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 19.08.2005
Beiträge: 115
|
naja soviel ich weiß is unique net case sensitive.
Falls sich also kein Karl anmelden darf, falls es schon einen KARL gibt, musste wohl erst select machen. Ansonsten tippe ich aber schon, das man sich drauf verlassen kann.
__________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. |
|
|
|
|
|
Nach oben #3 |
|
Benutzer
Registriert seit: 17.08.2005
Beiträge: 87
|
Es kommt nicht auf UNIQUE sondern auf die Felddefinition an, ob der Verlgeich case sensitive ist oder nicht.
text und varchar sind ohne weitere Attribute case insensitive. Karl, KARL und karL sind danach gleich und werden von unique nur in einer Form zugelassen. |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Um Volkers Aussage etwas zu erweitern: Wenn das Feld BINARY gemacht wird, ist es casesensitive. Allerdings muss ich sagen macht es in meinen Augen keinen Sinn z.B.: karl, KARL und Karl gleichzeitig als Usernamen zuzulassen, das sorgt nur für Verwirrung bei den anderen Usern und es würde im Zweifelsfall immer karl die Mails erhalten, da User nunmal schreibfaul sind und die Shift-Taste selten nutzen. Die Verwechslungsgefahr ist einfach zu groß.
Zum Thema selbst: Es war nicht gefragt worden, ob dies überhaupt irgendwie machbar ist, sondern lediglich, ob es ausreichend ist, wenn das Feld UNIQUE ist: Ja, ist es. Allerdings ist es schwierig, je nach Query, dann zu sagen, was genau fehlgeschlagen ist. Entweder zerpflückst du dann die mysql_error () und gibst anhand dessen aus, wo der Fehler lag oder du machst nen Query vorher, indem du schaust, ob der Username vorhanden ist.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #5 |
|
Gast
Beiträge: n/a
|
Das ist mir schon klar, dass Karl und KArl das gleiche sind. Ich kann mich im Forum ja auch mit fat tony|Fat Tony anmelden. Allerdings spielt das auch keine Rolle. Ich werde einfach alle Benutzer mit SELECT BINARY abfragen oder SELECT LOWER(sdsad) nutzen.
MfG CSS |
|
|
|
Nach oben #6 | |
|
Gast
Beiträge: n/a
|
Zitat:
es gibt aber auch mit mysql transaktionen, und man hat auch die möglichkeit, tabellen zu sperren. |
|
|
|
|
Nach oben #7 | |
|
Erfahrener Benutzer
Registriert seit: 18.08.2005
Beiträge: 108
|
Zitat:
2) ist sowas wahnsinnig langsam, weil nicht auf dem Index gearbeitet werden kann. Falls Du überhaupt nen passenden Index hast. |
|
|
|
|
|
|
Nach oben #8 | |
|
Benutzer
Registriert seit: 17.08.2005
Beiträge: 87
|
Mach einfach das Feld für nick und das für email unique.
Wenn Du dann den Fehlercode für duplicate entry beim Eintragen erhälst, kannst Du zur Not immer noch per SELECT genau abfragen, was nun schief gegangen ist. Zitat:
|
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [MySQL] INSERT mit Wert aus einer Liste... | WarrenFaith | Datenbanken | 6 | 16.05.2007 16:58 |
| [MySQL] Doppelte Einträge | thrawn | Datenbanken | 2 | 11.04.2007 17:13 |
| [MySQL] Was macht INSERT IGNORE/INSERT DELAYED, Anwendungsbeispiele | Ben | Datenbanken | 7 | 05.02.2007 18:23 |
| [MySQL] Tabellen vergleichen | Sclot | Datenbanken | 0 | 31.01.2007 12:47 |
| [MySQL] ORDER BY - 0 am ende | thrawn | Datenbanken | 5 | 24.01.2007 14:14 |