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

MySQL:indice univoco che non rispetta i valori `null`

Sì, questo è il comportamento previsto in MySQL (in effetti anche in ANSI-92). NULL i valori non vengono trattati come valori uguali nelle chiavi univoche e le chiavi primarie non possono contenere NULL valori per definizione.

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

Dato che hai il vincolo della chiave esterna sulla colonna nullable, suggerirei di aggiungere un valore fittizio alle tabelle principali che indichi il fatto che il genitore è irrilevante o non determinato (i record dove ID =0 forse) e aggiungere il NOT NULL vincolo alla colonna. (Inoltre puoi aggiungere il valore fittizio come DEFAULT ).