Ja, en främmande nyckel är en typ av begränsning. MySQL har ojämnt stöd för begränsningar:
PRIMARY KEY
:ja som tabellbegränsning och kolumnbegränsning.FOREIGN KEY
:ja som tabellbegränsning, men bara med InnoDB- och BDB-lagringsmotorer; annars analyseras men ignoreras.CHECK
:analyserad men ignorerad i alla lagringsmotorer.UNIQUE
:ja som tabellbegränsning och kolumnbegränsning.NOT NULL
:ja som kolumnbegränsning.DEFERRABLE
och andra begränsningsattribut:inget stöd.
CONSTRAINT
sats låter dig namnge begränsningen uttryckligen, antingen för att göra metadata mer läsbar eller för att använda namnet när du vill ta bort begränsningen. SQL-standarden kräver att CONSTRAINT
klausul är valfri. Om du utelämnar det skapar RDBMS ett namn automatiskt, och namnet är upp till implementeringen.