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

MySQL:jedinečný index nerespektující hodnoty `null`

Ano, toto je očekávané chování v MySQL (ve skutečnosti také v ANSI-92). NULL hodnoty nejsou v jedinečných klíčích považovány za stejné hodnoty a primární klíče nemohou obsahovat NULL hodnoty podle definice.

(http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )

Vzhledem k tomu, že máte omezení cizího klíče ve sloupci s možnou hodnotou Null, navrhoval bych přidat do nadřazených tabulek fiktivní hodnotu, která uvádí skutečnost, že nadřazený je irelevantní nebo není určen (možná záznamy, kde ID =0) a přidat NOT NULL omezení na sloupec. (Dodatečně můžete přidat fiktivní hodnotu jako DEFAULT ).




  1. Jak vybrat všechny řádky HTML tabulky

  2. Jak funguje LOG2() v MariaDB

  3. exportní tabulka mysql na základě konkrétní podmínky

  4. Dochází ke snížení výkonu, pokud je v tabulce příliš mnoho sloupců?