Problem mit MySQL nd UNIQUE

TTlong

Angesehenes Mitglied
Hi,

für ein neues Projekt habe ich eine DB mit 4 Tabelle und darin jeweils 3 Feldern (id, wert, wert_hash). Dabei ist wichtig, dass jeder Wert nur ein einziges Mal vorkommt. (wert ist UNIQUE).

Jedoch werden bsp.: fisch, Fisch und FISCH als ein Wort bzw. Wert behandelt und nicht als drei verschiedene. Ich benötige es aber eben genau so.

Sollte ich vielleicht den Hash als UNIQUE setzen (die Wahrscheinlichkeit, dass dieser doppelt vorkommt ist ja nahezu null => SHA1-Hash) oder gibt es ne andere, bessere Lösung?


TTlong
 
Du hast eine Sortierung, die in etwa (MS-SQL) Latin1_General_CI_AI lautet - Latin 1 ohne Berücksichtigung von Groß/Kleinschreibung und ohne Berücksichtigung von Akzenten.

Damit ist

CODE fisch = FISCH

ein = éin


bei allen Überprüfungen / Sortierungen.

Wenn fisch != Fisch sowie ein != éin gelten soll, dann stelle um auf die binäre Sortierung: Latin1_General_BIN. Diese Namen dürfte es auch analog bei mySql geben.

Man kann das auch temporär machen:


CODE Where Spalte1 = @variable Collate Latin1_General_BIN


falls ansonsten die Spalten nicht passen. Oder beim Erzeugen / Ändern von Tabellen:


CODE Create Table meineDaten(id int Identity(1, 1) Primary Key, Name nvarchar(50) Collate Latin1_General_BIN, Notizen nvarchar(512) Collate Latin1_General_CI_AI)

Alter Table meineDaten Alter Column Notizen nvarchar(512) Collate Latin1_General_BIN
 
Danke schön, einfache Lösung, man muss es eben nur wissen.
wink.gif


Schönen Sonntag noch.

Gruß TTlong
 
Zurück
Oben