Mysql
 sql >> Database >  >> RDS >> Mysql

Vincoli della terminologia MySQL e differenza di chiavi esterne?

Sì, una chiave esterna è un tipo di vincolo. MySQL ha un supporto non uniforme per i vincoli:

  • PRIMARY KEY :sì come vincolo di tabella e vincolo di colonna.
  • FOREIGN KEY :si come vincolo di tabella, ma solo con motori di archiviazione InnoDB e BDB; altrimenti analizzato ma ignorato.
  • CHECK :analizzato ma ignorato in tutti i motori di archiviazione.
  • UNIQUE :sì come vincolo di tabella e vincolo di colonna.
  • NOT NULL :sì come vincolo di colonna.
  • DEFERRABLE e altri attributi di vincolo:nessun supporto.

Il CONSTRAINT La clausola consente di nominare il vincolo in modo esplicito, per rendere più leggibili i metadati oppure per utilizzare il nome quando si desidera eliminare il vincolo. Lo standard SQL richiede che il CONSTRAINT la clausola è facoltativa. Se lo ometti, l'RDBMS crea automaticamente un nome e il nome dipende dall'implementazione.