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.