sql >> Databáze >  >> RDS >> Mysql

MySQL:UNIQUE, ale DEFAULT NULL - povoleno vytvořením tabulky. Je povoleno vložit více než 1 NULL. Proč?

Podle specifikace SQL 92 (a toho, jak ji čtete) jsou jedinečná omezení určena k označení kandidátských klíčů, a proto by neměla umožňovat duplicitní hodnoty ani hodnoty NULL. DB2 tímto způsobem implementuje svá jedinečná omezení. Více než několik dodavatelů databází (včetně MySQL) čte specifikaci jako ignorující hodnoty NULL, podobně jako klauzule Group By ignoruje hodnoty NULL, a proto implementují jedinečná omezení, takže platí pouze pro hodnoty jiné než NULL. Jiní zacházejí s NULL jako se svou vlastní speciální hodnotou a povolí pouze jednu položku, která je NULL. Microsoft SQL Server tímto způsobem implementuje jedinečná omezení. Jediným aspektem, který je konzistentní u všech dodavatelů s ohledem na jedinečná omezení, je, že hodnoty jiné než NULL musí být jedinečné.



  1. Jak zajistíte, aby vaše databáze mluvila mnoha jazyky?

  2. Jak bezpečné je vlákno EnableWriteAheadLogging v kontextu skutečného použití a dokumentace SQLite?

  3. Chyba MySQL STR_TO_DATE NULL

  4. Přehled replikace mezi clustery