Mysql
 sql >> Base de données >  >> RDS >> Mysql

Contraintes de terminologie MySQL vs différence de clés étrangères ?

Oui, une clé étrangère est un type de contrainte. MySQL a une prise en charge inégale des contraintes :

  • PRIMARY KEY :oui comme contrainte de table et contrainte de colonne.
  • FOREIGN KEY :oui comme contrainte de table, mais uniquement avec les moteurs de stockage InnoDB et BDB ; sinon analysé mais ignoré.
  • CHECK :analysé mais ignoré dans tous les moteurs de stockage.
  • UNIQUE :oui comme contrainte de table et contrainte de colonne.
  • NOT NULL :oui comme contrainte de colonne.
  • DEFERRABLE et autres attributs de contrainte :pas de prise en charge.

La CONSTRAINT La clause vous permet de nommer explicitement la contrainte, soit pour rendre les métadonnées plus lisibles, soit pour utiliser le nom lorsque vous souhaitez supprimer la contrainte. La norme SQL exige que la CONSTRAINT clause est facultative. Si vous l'omettez, le RDBMS crée automatiquement un nom, et le nom dépend de l'implémentation.