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

Nozioni di base sulle chiavi esterne in MySQL?

FOREIGN KEYS assicurati solo che i tuoi dati siano coerenti.

Non migliorano le query in termini di efficienza, fanno solo fallire alcune query sbagliate.

Se hai una relazione come questa:

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

, non puoi eliminare un department se ha qualche employee 's.

Se fornisci ON DELETE CASCADE alla FOREIGN KEY definizione, le righe di riferimento verranno eliminate automaticamente insieme a quelle referenziate.

Come vincolo, FOREIGN KEY in realtà rallenta un po' le query.

È necessario eseguire un controllo aggiuntivo durante l'eliminazione da una tabella referenziata o l'inserimento in una tabella di riferimento.