sql >> Database >  >> RDS >> Mysql

MySQL:UNIEK, maar STANDAARD NULL - toegestaan ​​door het maken van een tabel. Er mag meer dan 1 NULL worden ingevoegd. Waarom?

Volgens de SQL 92-specificatie (en hoe u deze leest) zijn unieke beperkingen bedoeld om kandidaat-sleutels aan te duiden en zouden daarom geen dubbele waarden moeten toestaan ​​noch NULL-waarden. DB2 implementeert hun unieke beperkingen op deze manier. Meer dan een paar databaseleveranciers (inclusief MySQL) lezen de specificatie als het negeren van NULL-waarden, net zoals de Group By-clausule NULL-waarden negeert en daarom implementeren ze unieke beperkingen zodat deze alleen van toepassing zijn op niet-NULL-waarden. Weer anderen behandelen de NULL als zijn eigen speciale waarde en staan ​​slechts één invoer toe die NULL is. Microsoft SQL Server implementeert op deze manier unieke beperkingen. Het enige aspect dat consistent is tussen alle leveranciers met betrekking tot unieke beperkingen, is dat niet-NULL-waarden uniek moeten zijn.



  1. Oracle ORA-12154:TNS:kan de servicenaamfout niet oplossen?

  2. meta_query, hoe te zoeken met zowel de relatie OR &AND?

  3. Hoe een externe MySQL-server die op Ubuntu linux draait opnieuw te starten?

  4. Wanneer utf-8 en wanneer latin1 gebruiken in MySQL?