Sven Rautenberg: Identische Einträge trotz UNIQUE KEY

Beitrag lesen

Moin!

INSERT INTO testunique VALUES (1, "a", NULL);
INSERT INTO testunique VALUES (1, "a", NULL);

Der 2. INSERT-Befehl sollte meiner Meinung nach einen Fehler melden, jedoch fügt MySQL ganz normal den Datensatz ein und die Tabelle besteht aus zwei Zeilen. Das verwirrt mich, denn es sollte doch eigentlich nicht möglich sein, mit dem UNIQUE KEY einen zweiten identischen Eintrag zu erzeugen! Was ist da falsch?

NULL ist der Wert mit Sonderbehandlung, der sich in vielen Belangen merkwürdig verhält. NULL ist beispielsweise gleich FALSE, aber auch gleich NICHT-FALSE.

Hinsichtlich eines UNIQUE-Index kann es beliebig viele Spalten geben, die statt eines tatsächlichen Wertes (der dann einzigartig sein muß) den Wert NULL haben dürfen.

Vermutlich wirkt sich diese Eigenschaft von NULL auch auf den zusammengesetzten UNIQUE-Index aus.

- Sven Rautenberg

--
"Love your nation - respect the others."