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.DEFERRABLEund 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.