Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Terminologieeinschränkungen vs. Unterschied zwischen Fremdschlüsseln?

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.