Ano, cizí klíč je druh omezení. MySQL má nerovnoměrnou podporu pro omezení:
PRIMARY KEY
:ano jako omezení tabulky a omezení sloupce.FOREIGN KEY
:ano jako omezení tabulky, ale pouze s úložnými moduly InnoDB a BDB; jinak analyzován, ale ignorován.CHECK
:analyzován, ale ignorován ve všech úložištích.UNIQUE
:ano jako omezení tabulky a omezení sloupce.NOT NULL
:ano jako omezení sloupců.DEFERRABLE
a další atributy omezení:žádná podpora.
CONSTRAINT
klauzule umožňuje pojmenovat omezení explicitně, buď aby byla metadata čitelnější, nebo jinak použít název, když chcete omezení zrušit. Standard SQL vyžaduje CONSTRAINT
doložka je nepovinná. Pokud jej vynecháte, RDBMS vytvoří název automaticky a název závisí na implementaci.