jeudi 13 janvier 2011

BDD mysql : rappel creation/suppression de foreign key

Voici un petit exemple de creation de 2 tables, une "parente" et une enfant liées par une clé étrangère.

A noter qu'il est nécessaire de créer des index via le keyword (INDEX ou KEY) pour chacune des clés étrangères


create table parent
( id bigint(20) NOT NULL AUTO_INCREMENT,
nom varchar(40),
primary key(id)
) type=INNODB;

create table enfant
(id bigint(20) not null auto_increment,
nom varchar(40),
parent_id bigint(20),
primary key(id),
index fk_parent_id (parent_id),
foreign key (parent_id) references parent(id) on delete cascade
) TYPE = INNODB;


La suppression d'une foreign key se fait via la commande suivante :
ALTER TABLE `maTable` REMOVE FOREIGN KEY `FK_leNomDeMaForeginKey`

Un petit exemple d'insertion avec AUTO_INCREMENT

insert into parent (nom) values ("enwoo");
insert into enfant (nom,parent_id) values ('julie',1);
insert into enfant (nom,parent_id) values ('maxime',1);


Si vous supprimez le parent, les enfants liés le seront aussi grâce à la claude on delete cascade.

Aucun commentaire:

Enregistrer un commentaire