Tables en mysql
lamou23
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
-
ProgMad Messages postés 88 Date d'inscription Statut Membre Dernière intervention -
ProgMad Messages postés 88 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Tables en mysql
- Tables des matières word - Guide
- Mysql community server - Télécharger - Bases de données
- Tables ascii - Guide
- Mysql error 2002 ✓ - Forum Linux / Unix
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données