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

Složené klíče MySql a hodnoty null

http://dev.mysql.com/doc/refman /5.0/cs/create-index.html

"JEDINEČNÝ index vytváří omezení, takže všechny hodnoty v indexu musí být odlišné. Pokud se pokusíte přidat nový řádek s hodnotou klíče, která odpovídá existujícímu řádku, dojde k chybě. Toto omezení se nevztahuje na hodnoty NULL kromě Úložný modul BDB. U jiných modulů umožňuje UNIQUE index více hodnot NULL pro sloupce, které mohou obsahovat NULL."

Takže ne, nemůžete přimět MySQL, aby považovalo NULL za jedinečnou hodnotu. Myslím, že máte několik možností:můžete udělat to, co jste navrhli ve své otázce, a uložit "zvláštní hodnotu" místo null, nebo můžete pro tabulku použít engine BDB. Nemyslím si však, že tento nepatrný rozdíl v chování opravňuje k neobvyklému výběru úložiště.




  1. Jak aktualizovat pole na základě jeho aktuální hodnoty v MySQL?

  2. SQL - Rozdíl mezi COALESCE a ISNULL?

  3. Rozdělte čárkami oddělené hodnoty sloupce v řádku pomocí dotazu Oracle SQL

  4. pořadí provedení ve webovém prostředí