Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySql zusammengesetzte Schlüssel und Nullwerte

http://dev.mysql.com/doc/refman /5.0/en/create-index.html

"Ein UNIQUE-Index erstellt eine Einschränkung, sodass alle Werte im Index eindeutig sein müssen. Ein Fehler tritt auf, wenn Sie versuchen, eine neue Zeile mit einem Schlüsselwert hinzuzufügen, der mit einer vorhandenen Zeile übereinstimmt. Diese Einschränkung gilt nicht für NULL-Werte mit Ausnahme von BDB-Speicher-Engine. Bei anderen Engines erlaubt ein UNIQUE-Index mehrere NULL-Werte für Spalten, die NULL enthalten können."

Also, nein, Sie können MySQL nicht dazu bringen, NULL als eindeutigen Wert zu behandeln. Ich denke, Sie haben ein paar Möglichkeiten:Sie könnten tun, was Sie in Ihrer Frage vorgeschlagen haben, und einen "speziellen Wert" anstelle von null speichern, oder Sie könnten die BDB-Engine für die Tabelle verwenden. Ich glaube jedoch nicht, dass dieser geringfügige Unterschied im Verhalten eine ungewöhnliche Wahl der Speicher-Engine rechtfertigt.