Ich habe eine Tabelle mit PreiscodesSQL eindeutigen Index ermöglicht doppelte nulls
codes
code, user_id, prize_id
Ich habe einen eindeutigen Index für user_id, prize_id
Alle Codes bereits in der Tabelle sind und wenn ein Benutzer einlöst einen Code Ein zufälliger Code mit user_id = NULL wird zugewiesen.
Leider funktioniert das nicht, da der eindeutige Index es mir nicht erlaubt, die gleiche prize_id mehrmals hinzuzufügen, ohne eine user_id zusammen damit zuzuweisen.
Gibt es eine Möglichkeit, dem eindeutigen Index mitzuteilen, dass NULL nicht als Duplikat betrachtet werden sollte?
Ausgangszustand:
code, user_id, prize_id
A, NULL, 1
B, NULL, 1
C, NULL, 1
D, NULL, 2
E, NULL, 2
nach 1 Benutzer einlöst den Code für Preis 2:
code, user_id, prize_id
A, NULL, 1
B, NULL, 1
C, NULL, 1
D, 1, 2
E, NULL, 2
NULL ist kein Wert, es ist die Abwesenheit von einem. Vielleicht eine ID namens "Kein Preis" als Standard. –
@JacobH Dann habe ich immer noch das Problem, dass dies zu Konflikten mit dem eindeutigen Index – Chris
Dies hilft? https://stackoverflow.com/questions/767657/how-do-i-create-a-unique-constraint-that-also-allows-nulls –