Ja, een externe sleutel is een soort beperking. MySQL heeft ongelijke ondersteuning voor beperkingen:
PRIMARY KEY
:ja als tabelbeperking en kolombeperking.FOREIGN KEY
:ja als tabelbeperking, maar alleen met InnoDB- en BDB-opslagengines; anders ontleed maar genegeerd.CHECK
:ontleed maar genegeerd in alle opslag-engines.UNIQUE
:ja als tabelbeperking en kolombeperking.NOT NULL
:ja als kolombeperking.DEFERRABLE
en andere beperkingskenmerken:geen ondersteuning.
De CONSTRAINT
clausule stelt u in staat om de beperking expliciet een naam te geven, ofwel om metadata leesbaarder te maken, ofwel om de naam te gebruiken wanneer u de beperking wilt laten vallen. De SQL-standaard vereist dat de CONSTRAINT
clausule is optioneel. Als je het weglaat, maakt het RDBMS automatisch een naam aan, en de naam is aan de implementatie.