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

MySQL:unikalny indeks nie respektujący wartości „null”

Tak, jest to oczekiwane zachowanie w MySQL (w rzeczywistości również w ANSI-92). NULL wartości nie są traktowane jako równe wartości w unikalnych kluczach, a klucze podstawowe nie mogą zawierać NULL wartości z definicji.

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

Ponieważ masz ograniczenie klucza obcego w kolumnie dopuszczającej wartość null, sugerowałbym dodanie wartości fikcyjnej do tabel nadrzędnych, która stwierdza, że ​​rodzic jest nieistotny lub nie jest określony (rekordy, w których ID =0, być może) i dodaj NOT NULL ograniczenie do słupa. (Dodatkowo możesz dodać fikcyjną wartość jako DEFAULT ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapobiegaj wstrzykiwaniu SQL w JavaScript / Node.js

  2. Jak mogę włączyć rozszerzenie MySQLi w PHP 7?

  3. Jak automatycznie usunąć wszystkie wiersze referencyjne, jeśli wiersz nadrzędny zostanie usunięty w mysql?

  4. Konstruktor zapytań Codeigniter używający funkcji implode w where_in

  5. Zwróć 0, jeśli pole jest puste w MySQL