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

MySQL:UNIQUE, mas DEFAULT NULL - permitido pela criação da tabela. Mais de 1 NULL é permitido inserir. Por quê?


De acordo com a especificação do SQL 92 (e como você a lê), as restrições exclusivas destinam-se a denotar chaves candidatas e, portanto, não devem permitir valores duplicados nem valores NULOS. O DB2 implementa suas restrições exclusivas dessa maneira. Mais do que alguns fornecedores de banco de dados (incluindo MySQL) leem a especificação como ignorando valores NULL, assim como a cláusula Group By ignora valores NULL e, portanto, implementam restrições exclusivas de modo que só se aplica a valores não NULL. Outros ainda, tratam o NULL como seu próprio valor especial e permitem apenas uma entrada que seja NULL. O Microsoft SQL Server implementa restrições exclusivas dessa maneira. O único aspecto que é consistente entre todos os fornecedores com relação às restrições exclusivas é que os valores não NULL devem ser exclusivos.