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