Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 03.09.2005, 23:08   Nach oben    #1
Jay
Gast
 
Beiträge: n/a
Standard [MySQL] Zuverlässigkeit von UNIQUE

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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.09.2005, 23:23   Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard [MySQL] Zuverlässigkeit von UNIQUE

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.
Buhmann ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 02:53   Nach oben    #3
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard [MySQL] Zuverlässigkeit von UNIQUE

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.
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 07:11   Nach oben    #4
Erfahrener Benutzer
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
Standard [MySQL] Zuverlässigkeit von UNIQUE

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
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 10:35   Nach oben    #5
Jay
Gast
 
Beiträge: n/a
Standard [MySQL] Zuverlässigkeit von UNIQUE

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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 11:09   Nach oben    #6
axo
Gast
 
Beiträge: n/a
Standard Re: [MySQL] Zuverlässigkeit von UNIQUE

Zitat:
Zitat von Fat Tony
Soll ich nun vor meiner INSERT-Anweisung noch eine SELECT Abfrage einbauen oder kann ich mich zu 100% darauf verlassen. Was meint ihr?
übrigens zur klarstellung: DAS würde auf keinen fall funktionieren, sondern macht das problem noch schlimmer. stichwort race condition.

es gibt aber auch mit mysql transaktionen, und man hat auch die möglichkeit, tabellen zu sperren.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 13:03   Nach oben    #7
Waq
Erfahrener Benutzer
 
Registriert seit: 18.08.2005
Beiträge: 108
Standard [MySQL] Zuverlässigkeit von UNIQUE

Zitat:
Zitat von Fat Tony
Ich werde einfach alle Benutzer mit SELECT BINARY abfragen oder SELECT LOWER(sdsad) nutzen.
1) wofür?
2) ist sowas wahnsinnig langsam, weil nicht auf dem Index gearbeitet werden kann. Falls Du überhaupt nen passenden Index hast.
Waq ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 15:14   Nach oben    #8
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard [MySQL] Zuverlässigkeit von UNIQUE

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:
Ich kann mich im Forum ja auch mit fat tony|Fat Tony anmelden
Bei z.B. Varchar ohne binary sind fat tony und Fat Tony wie gesagt gleich und Du kannst Dich eben nicht mit beiden nicks anmelden, wenn das dazugehörige Feld als unique markiert ist.
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:10 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44