sql >> Database teknologi >  >> RDS >> Mysql

MySql sammensatte nøgler og null-værdier

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

"Et UNIKT indeks opretter en begrænsning, således at alle værdier i indekset skal være forskellige. Der opstår en fejl, hvis du forsøger at tilføje en ny række med en nøgleværdi, der matcher en eksisterende række. Denne begrænsning gælder ikke for NULL-værdier undtagen for BDB-lagringsmotor. For andre motorer tillader et UNIKT indeks flere NULL-værdier for kolonner, der kan indeholde NULL."

Så nej, du kan ikke få MySQL til at behandle NULL som en unik værdi. Jeg gætter på, at du har et par valgmuligheder:du kan gøre, hvad du foreslog i dit spørgsmål og gemme en "særlig værdi" i stedet for null, eller du kan bruge BDB-motoren til bordet. Jeg tror dog ikke, at denne lille forskel i adfærd berettiger til et usædvanligt valg af lagermotor.




  1. bruge mysql indlejret med qt?

  2. Oracle:hvordan UPSERT (opdater eller indsæt i en tabel?)

  3. MySQL, Vælg poster baseret på værdier i JSON-array

  4. Oprettelse af en kold standby for PostgreSQL ved hjælp af Amazon AWS