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

MySQL:EINZIGARTIG, aber STANDARD NULL - erlaubt durch Erstellen einer Tabelle. Es darf mehr als 1 NULL eingefügt werden. Wieso den?

Gemäß der SQL 92-Spezifikation (und wie Sie sie lesen) sollen eindeutige Einschränkungen Kandidatenschlüssel bezeichnen und sollten daher keine doppelten Werte noch zulassen NULL-Werte. DB2 implementiert ihre eindeutigen Einschränkungen auf diese Weise. Mehr als ein paar Datenbankanbieter (einschließlich MySQL) interpretieren die Spezifikation so, dass NULL-Werte ignoriert werden, ähnlich wie die Group By-Klausel NULL-Werte ignoriert, und implementieren daher eindeutige Einschränkungen, sodass sie nur für Nicht-NULL-Werte gelten. Wieder andere behandeln NULL als ihren eigenen speziellen Wert und erlauben nur einen Eintrag, der NULL ist. Microsoft SQL Server implementiert auf diese Weise eindeutige Einschränkungen. Der einzige Aspekt, der bei allen Anbietern in Bezug auf Eindeutigkeitsbeschränkungen einheitlich ist, ist, dass Nicht-NULL-Werte eindeutig sein müssen.