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

Restrições de terminologia do MySQL vs diferença de chaves estrangeiras?


Sim, uma chave estrangeira é um tipo de restrição. O MySQL tem suporte desigual para restrições:
  • PRIMARY KEY :sim como restrição de tabela e restrição de coluna.
  • FOREIGN KEY :sim como restrição de tabela, mas apenas com mecanismos de armazenamento InnoDB e BDB; analisado de outra forma, mas ignorado.
  • CHECK :analisado, mas ignorado em todos os mecanismos de armazenamento.
  • UNIQUE :sim como restrição de tabela e restrição de coluna.
  • NOT NULL :sim como restrição de coluna.
  • DEFERRABLE e outros atributos de restrição:sem suporte.

A CONSTRAINT A cláusula permite que você nomeie a restrição explicitamente, seja para tornar os metadados mais legíveis ou para usar o nome quando quiser eliminar a restrição. O padrão SQL requer que o CONSTRAINT cláusula é opcional. Se você o deixar de fora, o RDBMS cria um nome automaticamente, e o nome fica por conta da implementação.