mysql unique-index AUßER leer oder null ist
Ich habe eine MySQL-MyISAM-Tabelle mit der ISBN. Ich möchte einen EINDEUTIGEN index erstellen, der nicht werfen "doppelte" Fehler, wenn der Wert leer oder null ist.
Ist das möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie mit MyISAM - (oder INNODB) - Speicher-engine, die kurze Antwort ist Nein. Mehrere leere Zeichenfolgen, die nicht für die Arbeit der unique index-Einschränkung, auch wenn mehrere null-Werte enthalten würde. Ihre beste Wette, wenn Sie möchten, eine SQL-Lösung ist, erstellen Sie einen normalen index auf das ISBN-Feld, und verwenden Sie eine gespeicherte Prozedur als proxy einsetzen-eine, die prüft, für Einzigartigkeit, wenn nicht null oder leer ist.
Wenn nur Nullen Arbeit für Sie, hier ist eine grundlegende erstellen:
Nur ein Hinweis... Erinnere mich an die '13', festgelegt, int ist nur die Anzahl der Ziffern, es wird sich zeigen, wenn die Rücksendung in einer Abfrage, nicht die Größe der Ganzzahl.
können Sie so etwas wie dieses,
ALTER TABLE tbl_name ADD EINZIGARTIGE index_name (column_list):
Diese Anweisung erstellt einen index für die Werte eindeutig sein müssen (mit Ausnahme von NULL-Werten, die möglicherweise mehrere Male angezeigt). Finden Sie MySQL-INDIZES.