Да, външният ключ е вид ограничение. MySQL има неравномерна поддръжка за ограничения:
PRIMARY KEY
:да като ограничение на таблица и ограничение на колона.FOREIGN KEY
:да като ограничение на таблицата, но само с InnoDB и BDB машини за съхранение; иначе анализиран, но игнориран.CHECK
:анализиран, но игнориран във всички машини за съхранение.UNIQUE
:да като ограничение на таблица и ограничение на колона.NOT NULL
:да като ограничение на колона.DEFERRABLE
и други атрибути на ограничения:няма поддръжка.
CONSTRAINT
клаузата ви позволява да наименувате ограничението изрично, за да направите метаданните по-четливи или да използвате името, когато искате да премахнете ограничението. SQL стандартът изисква CONSTRAINT
клаузата е незадължителна. Ако го пропуснете, RDBMS създава име автоматично и името зависи от реализацията.