Eindeutige Einschränkungen mit Nullwerten in MySQL erzwingen
Im Bereich des Datenbankdesigns ist die Sicherstellung der Einzigartigkeit der Daten von entscheidender Bedeutung. Was aber, wenn einige Datenwerte leer sein können? Können wir dennoch eine eindeutige Einschränkung definieren, die solche Instanzen berücksichtigt?
In MySQL lautet die Antwort „Ja“. In der MySQL-Dokumentation (Version 5.5) heißt es: „Ein UNIQUE-Index erlaubt mehrere NULL-Werte für Spalten, die NULL enthalten können.“ Dies bedeutet, dass Sie eine eindeutige Einschränkung für eine Spalte erstellen können, selbst wenn diese Nullwerte zulässt.
Zur Veranschaulichung betrachten wir eine Tabelle mit Produktcodes. Einige Produkte verfügen möglicherweise über eindeutige Codes, die von ihren Lieferanten bereitgestellt werden, andere möglicherweise nicht. Um dies zu berücksichtigen, können wir wie folgt einen eindeutigen Index für die Spalte „product_code“ definieren:
CREATE TABLE products ( product_code VARCHAR(255) UNIQUE );
Standardmäßig lässt die Spalte „product_code“ Nullwerte zu. Dies bedeutet, dass Produkte ohne Codes in die Tabelle eingefügt werden können und die Eindeutigkeitsbeschränkung nur für Werte ungleich Null gilt. So wären beispielsweise die folgenden zwei Zeilen zulässig:
product_code = 'XYZ123' product_code = NULL
Diese Lösung ist auch dann machbar, wenn die Spalte nicht nullbar ist. Indem wir die Fähigkeit der Datenbank nutzen, mehrere Nullwerte in einem UNIQUE-Index zu verarbeiten, können wir die Eindeutigkeit effektiv erzwingen und gleichzeitig leere Datenwerte aufnehmen.
Das obige ist der detaillierte Inhalt vonKann die UNIQUE-Einschränkung von MySQL Nullwerte verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!