Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Klucze złożone MySql i wartości null

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

„Indeks UNIQUE tworzy ograniczenie, tak że wszystkie wartości w indeksie muszą być różne. Przy próbie dodania nowego wiersza z wartością klucza, która pasuje do istniejącego wiersza, wystąpi błąd. To ograniczenie nie dotyczy wartości NULL, z wyjątkiem Mechanizm przechowywania BDB. W przypadku innych silników indeks UNIQUE dopuszcza wiele wartości NULL dla kolumn, które mogą zawierać NULL.

Więc nie, nie możesz sprawić, by MySQL traktował NULL jako unikalną wartość. Sądzę, że masz kilka możliwości:możesz zrobić to, co sugerowałeś w swoim pytaniu i zapisać „wartość specjalną” zamiast null, lub możesz użyć silnika BDB dla tabeli. Nie sądzę jednak, aby ta niewielka różnica w zachowaniu uzasadniała dokonanie niezwykłego wyboru silnika pamięci masowej.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwiększyć licznik i zwrócić wartość w MySQL?

  2. Jak mogę mieć zaplanowane zdarzenia w dzienniku MySQL?

  3. Wybierz każdy miesiąc, nawet jeśli miesiąc nie istnieje w tabeli mysql

  4. Lepiej użyć daty zerowej „0000-00-00 00:00:00” lub NULL w MySQL?

  5. PreparedStatement nigdy nie przekroczy limitu czasu, nawet jeśli zostanie wyraźnie ustawiony