sql >> Database teknologi >  >> RDS >> Mysql

MySQL:UNIK, men DEFAULT NULL - tilladt ved oprettelse af tabel. Mere end 1 NULL er tilladt at indsætte. Hvorfor?

Ifølge SQL 92-specifikationen (og hvordan du læser den) er det meningen, at unikke begrænsninger skal angive kandidatnøgler og bør derfor ikke tillade duplikerede værdier eller NULL-værdier. DB2 implementerer deres unikke begrænsninger på denne måde. Mere end et par databaseleverandører (inklusive MySQL) læser specifikationen som at ignorere NULL-værdier, ligesom Group By-klausulen ignorerer NULL-værdier og implementerer derfor unikke begrænsninger, så de kun gælder for ikke-NULL-værdier. Atter andre, behandle NULL som sin egen specielle værdi og tillad kun én post, som er NULL. Microsoft SQL Server implementerer unikke begrænsninger på denne måde. Det eneste aspekt, der er konsekvent blandt alle leverandører med hensyn til unikke begrænsninger, er, at ikke-NULL-værdier skal være unikke.



  1. Kan ikke indstille small_case_table_names i MySQL 8.x på Windows 10

  2. Forespørgsel om adskillelsesgrader

  3. hvordan man vælger tæller fra hovedforespørgsel til underforespørgsel

  4. Wierd og irriterende fejl:Kald til udefineret funktion mysql_query()