sql >> Databasteknik >  >> RDS >> Mysql

MySQL:UNIK, men DEFAULT NULL - tillåts genom att skapa en tabell. Mer än 1 NULL är tillåtet att infoga. Varför?

Enligt SQL 92-specifikationen (och hur du läser den) är unika begränsningar avsedda att beteckna kandidatnycklar och bör därför inte tillåta dubbletter av värden eller NULL-värden. DB2 implementerar sina unika begränsningar på detta sätt. Fler än ett fåtal databasleverantörer (inklusive MySQL) läser specifikationen som ignorerar NULL-värden ungefär som Group By-satsen ignorerar NULL-värden och implementerar därför unika begränsningar så att det bara gäller icke-NULL-värden. Ytterligare andra, behandla NULL som sitt eget specialvärde och tillåt endast en post som är NULL. Microsoft SQL Server implementerar unika begränsningar på detta sätt. Den enda aspekten som är konsekvent bland alla leverantörer med avseende på unika begränsningar är att icke-NULL-värden måste vara unika.



  1. PLS-00103:Påträffade symbolen CREATE

  2. Hur återställer man primärnyckeln för en tabell?

  3. java.sql.SQLException:Kolumnindex utanför intervallet, 0 <1

  4. Hur fungerar "in"-klausulen i Oracle