Tables en mysql

Fermé
lamou23 Messages postés 178 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 21 mars 2011 - 13 juil. 2010 à 22:07
ProgMad Messages postés 88 Date d'inscription dimanche 4 mai 2008 Statut Membre Dernière intervention 15 août 2010 - 13 juil. 2010 à 22:32
salut,

j'ai créé une tables "serveur" comme suit:

Code :

CREATE TABLE serveur (
nom_machine varchar(20) NOT NULL,
IP_privee varchar(20) ,
IP_publique varchar(20),
PRIMARY KEY (nom_machine)

);
Et une table "service":

Code :

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)
);
Et une table intermédiaire contenant les clé primaire de "serveur" et "service" comme suit:
[CODE
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
);]/CODE


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:

Code :

ALTER TABLE nom_table TYPE=Innod;
j'ai fait les trois insertions suivante:

Code :

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');
l'option ON CASCADE permet de faire la suppression en cascade; alor en écrivant:

Code :

DELETE FROM serveur WHERE nom_machine='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"

aidez moi svp à réaliser ce que je veux

merci d'avance

1 réponse

ProgMad Messages postés 88 Date d'inscription dimanche 4 mai 2008 Statut Membre Dernière intervention 15 août 2010
13 juil. 2010 à 22:32
Salut,

Essaye de mettre "ON DELETE CASCADE" dans la table serveur aussi.
0