Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:índice único não respeitando valores `null`


Sim, este é o comportamento esperado no MySQL (na verdade também no ANSI-92). NULL os valores não são tratados como valores iguais em chaves únicas e as chaves primárias não podem conter NULL valores por definição.

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

Como você tem a restrição de chave estrangeira na coluna anulável, sugiro adicionar um valor fictício às tabelas pai que indique o fato de que o pai é irrelevante ou não determinado (os registros onde ID =0 talvez) e adicione o NOT NULL restrição da coluna. (Além disso, você pode adicionar o valor fictício como DEFAULT ).