Hallo Matthias,
Was?? Nein,
NULL != NULL
ist wahr, du kannst sovieleNULL
-Werte einfügen wie du willst:Das gilt für MySQL und PostgreSQL auch, nur MS SQL ist da kaputt und hält sich nicht an den Standard.
Aha. Auch das war mir nicht bewusst.
Es ist auch nicht besonders logisch, finde ich… ;-)
Mir ging es aber auch um den logischen Unterschied, nicht um den technischen.
Der da wäre? Dass über die Primärschlüssel die referentielle Integrität abgesichert wird, ist ja auch eher technisch,
Der Primärschlüssel identifiziert einen Datensatz eindeutig, die Aufgabe der Unique-ID ist es den Request eindeutig zu identifizieren.
Edit: was ich damit meine: der PK ist somit oft erst nach dem INSERT
bekannt, die UID zwangsläufig immer vorher.
Oder macht man sich um diesen praktisch nur theoretisch (sic) auftretenden Fall keine Gedanken?
Kollisionen werden damit so unwahrscheinlich, dass man sie ignoriert. Wenn man es aber richtig[tm] machen will, setzt man die Spalte regelmäßig auf
NULL
oder so, ja.Das fällt dann aber unter Datenbankhygiene, oder?
IMHO ja.
LG,
CK