Ja, ein Fremdschlüssel ist eine Art Einschränkung. MySQL bietet uneinheitliche Unterstützung für Beschränkungen:
PRIMARY KEY
:ja als Tabellenbeschränkung und Spaltenbeschränkung.FOREIGN KEY
:ja als Tabelleneinschränkung, aber nur mit InnoDB- und BDB-Speicher-Engines; andernfalls analysiert, aber ignoriert.CHECK
:geparst, aber in allen Speicher-Engines ignoriert.UNIQUE
:ja als Tabellenbeschränkung und Spaltenbeschränkung.NOT NULL
:Ja als Spaltenbeschränkung.DEFERRABLE
und andere Einschränkungsattribute:keine Unterstützung.
Die CONSTRAINT
-Klausel können Sie die Einschränkung explizit benennen, entweder um Metadaten besser lesbar zu machen oder um den Namen zu verwenden, wenn Sie die Einschränkung löschen möchten. Der SQL-Standard erfordert, dass der CONSTRAINT
Klausel ist optional. Wenn Sie es weglassen, erstellt das RDBMS automatisch einen Namen, und der Name hängt von der Implementierung ab.