salut,
j'ai créé une tables "serveur" comme suit:
Et une table "service":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE serveur ( nom_machine varchar(20) NOT NULL, IP_privee varchar(20) , IP_publique varchar(20), PRIMARY KEY (nom_machine) );
Et une table intermédiaire contenant les clé primaire de "serveur" et "service" comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE service ( Id_service int(11) NOT NULL auto_increment, nom_service varchar(20), num_port int(20) NOT NULL, path_log varchar(80), PRIMARY KEY (Id_service) );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE serveur_service ( Id_service int(11) NOT NULL auto_increment, nom_machine varchar(20) NOT NULL, PRIMARY KEY (Id_service,nom_machine), FOREIGN KEY(Id_service) REFERENCES service(Id_service) ON DELETE CASCADE, FOREIGN KEY(nom_machine) REFERENCES serveur(nom_machine) ON DELETE CASCADE );]
les tables sont de type Myisam par défaut, alors j'ai changé le type des trois table en Innodb pour utiliser la notion de clé étrangère comme suit:
j'ai fait les trois insertions suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE nom_table TYPE=Innod;
l'option ON CASCADE permet de faire la suppression en cascade; alor en écrivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 insert into serveur values ('dns','192.168.80.128','192.127.2.13'); insert into service (nom_service,num_port,path_log) values ('bind','12','fff'); insert into serveur_service (nom_machine) values ('dns');
la ligne ou nom_machine=dns est supprimé dans la table "serveur" mais ell n'est pas supprimée automatiquement dans la table "serveur_service"!!!! alors que ON DELETE CASCADA devrait servir à ça,autrement dit, suppratiquement l'enregistremnt de la table "serveur_service"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete from serveur where nom_machine='dns';
aidez moi svp à réaliser ce que je veux
merci d'avance
Partager