PhpMyAdmin > Clé étrangère

Comme une grande partie des utilisateurs de bases de données, j’utilise mysql implémenté de phpmyadmin.

Lors de la création de tables, il est important de bien définir la structure et les clés primaire et étrangères de chaque table.

Tout d’abord, il est important d’avoir les tables de type InnoDB, pour pouvoir créer les FOREIGN KEY.

Un exemple de table avec un id, trois colonnes et une quatrième colonne qui est contrainte par une clé étrangère :

Si on décompose, on obtient, la création de la table :

CREATE TABLE IF NOT EXISTS `tableA` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`colonne1` int(2) NOT NULL,
`colonne2` int(2) NOT NULL,
`colonne3` varchar(4) NOT NULL,
`id_tableB` int(25) DEFAULT NULL,

La clé primaire :
PRIMARY KEY (`id`),

La création de la clé étrangère :
FOREIGN KEY ( `id_tableB` ) REFERENCES `tableB` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

La syntaxe est simple :

FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]

Enfin, on termine par le moteur de stockage, le type et l’auto incrémente si besoin est.

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Manuel mysql