Requete de suppression SQL (MySql) pour pro
Résolu/Fermé
Xeno
-
Modifié par Xeno le 14/06/2011 à 14:40
Xeno123 Messages postés 132 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 10 juillet 2012 - 16 juin 2011 à 10:51
Xeno123 Messages postés 132 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 10 juillet 2012 - 16 juin 2011 à 10:51
A voir également:
- Requete de suppression SQL (MySql) pour pro
- Forcer suppression fichier - Guide
- Clé d'activation windows 10 pro - Guide
- I14 pro max - Accueil - Guide téléphones
- Mysql community server - Télécharger - Bases de données
- Ccleaner pro gratuit - Télécharger - Optimisation
10 réponses
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
14 juin 2011 à 15:01
14 juin 2011 à 15:01
Salut,
Essaye ça , normalement ça devrait marcher.
Essaye ça , normalement ça devrait marcher.
DELETE FROM application LEFT JOIN contient ON(application.id_appli=contient.id_appli) LEFT JOIN flux ON(contient.id_flux=flux.id_flux) LEFT JOIN correpond ON (flux.id_flux=correpond.id_flux) LEFT JOIN correspondance ON (correpond.id_corres=correspondance.id_corres) LEFT JOIN lier ON (flux.id_flux=lier.id_flux) LEFT JOIN env_origine ON (env_origine.id_env_ori=lier.id_env_ori) LEFT JOIN env_destination ON (lier.id_env_destination=env_destination.id_env_destination) WHERE application.id_appli = $id ; //remplace $id par l'id de l'appli que tu veux supprimer
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
15 juin 2011 à 09:51
15 juin 2011 à 09:51
c'est quand tu veux , y a pas de soucis.
bonne journée
bonne journée
Xeno123
Messages postés
132
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
10 juillet 2012
23
16 juin 2011 à 08:35
16 juin 2011 à 08:35
je t'ai envoyer un MP si tu as le temps de le regarder :)
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
16 juin 2011 à 10:28
16 juin 2011 à 10:28
Je vais regarder ça tout de suite
Xeno123
Messages postés
132
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
10 juillet 2012
23
16 juin 2011 à 10:51
16 juin 2011 à 10:51
merci :) une fois de plus tu me sauveras la vie (bon c'est exagérer mais tu me dépanneras bien ^^)
Merci d'avoir pris le temps de m'aider, je n'avais pas essayer de jointure, j'avais juste esayer des requetes imbriquées, mais le pb n'est toujours pas résolu :s
#1064 - Erreur de syntaxe près de 'LEFT JOIN contient ON(application.id_appli=contient.id_appli) LEFT JOIN flux ON(' à la ligne 1
holalala, depuis ce matin je galère pour une requete ...
#1064 - Erreur de syntaxe près de 'LEFT JOIN contient ON(application.id_appli=contient.id_appli) LEFT JOIN flux ON(' à la ligne 1
holalala, depuis ce matin je galère pour une requete ...
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
14 juin 2011 à 15:09
14 juin 2011 à 15:09
Si tu veux je te file mon adresse mail et envoie moi ta base de données comme ça je pourrai corriger la requete.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok je join la bdd en sql parceque je suis au taff et impossible d'envoyer des mails perso à caue du proxy ...
-- phpMyAdmin SQL Dump -- version 3.3.9.2 -- http://www.phpmyadmin.net -- -- Serveur: 127.0.0.1 -- Généré le : Mar 14 Juin 2011 à 15:14 -- Version du serveur: 5.5.10 -- Version de PHP: 5.3.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de données: 'db_carto' -- -- -------------------------------------------------------- -- -- Structure de la table 'application' -- CREATE TABLE IF NOT EXISTS 'application' ( 'id_appli' int(11) NOT NULL AUTO_INCREMENT, 'nom_appli' text, 'date_der_modif' date DEFAULT NULL, PRIMARY KEY ('id_appli') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; -- -- Contenu de la table 'application' -- INSERT INTO 'application' ('id_appli', 'nom_appli', 'date_der_modif') VALUES (1, 'ABCDTRAIN', '2011-06-14'); -- -------------------------------------------------------- -- -- Structure de la table 'contient' -- CREATE TABLE IF NOT EXISTS 'contient' ( 'id_appli' int(11) NOT NULL AUTO_INCREMENT, 'id_flux' int(11) NOT NULL, PRIMARY KEY ('id_appli','id_flux'), KEY 'FK_contient_id_flux' ('id_flux') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; -- -- Contenu de la table 'contient' -- INSERT INTO 'contient' ('id_appli', 'id_flux') VALUES (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8); -- -------------------------------------------------------- -- -- Structure de la table 'correpond' -- CREATE TABLE IF NOT EXISTS 'correpond' ( 'id_flux' int(11) NOT NULL AUTO_INCREMENT, 'id_corres' int(11) NOT NULL, PRIMARY KEY ('id_flux','id_corres'), KEY 'FK_correpond_id_corres' ('id_corres') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table 'correpond' -- -- -------------------------------------------------------- -- -- Structure de la table 'correspondance' -- CREATE TABLE IF NOT EXISTS 'correspondance' ( 'id_corres' int(11) NOT NULL AUTO_INCREMENT, 'port' text, 'protocole' text, PRIMARY KEY ('id_corres') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table 'correspondance' -- -- -------------------------------------------------------- -- -- Structure de la table 'env_destination' -- CREATE TABLE IF NOT EXISTS 'env_destination' ( 'id_env_destination' int(11) NOT NULL AUTO_INCREMENT, 'plateforme_dest' text, 'appli_nom_flux_dest' text, 'compo_middle_dest' text, 'commentaire' text, PRIMARY KEY ('id_env_destination') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Contenu de la table 'env_destination' -- INSERT INTO 'env_destination' ('id_env_destination', 'plateforme_dest', 'appli_nom_flux_dest', 'compo_middle_dest', 'commentaire') VALUES (1, 'production', '', 'apache', ''), (2, 'production', '', 'apache', ''), (3, 'production', '', 'apache vers IIS', ''), (4, 'production', '', 'apache vers IIS', ''), (5, 'recette', '', 'apache', ''), (6, 'recette', '', 'apache', ''), (7, 'recette', '', 'apache vers IIS', ''), (8, 'recette', '', 'apache vers IIS', ''); -- -------------------------------------------------------- -- -- Structure de la table 'env_origine' -- CREATE TABLE IF NOT EXISTS 'env_origine' ( 'id_env_ori' int(11) NOT NULL AUTO_INCREMENT, 'plateforme_ori' text, 'compo_middle_ori' text, 'appli_nom_flux_ori' text, 'rel_int_flux_indirect' text, PRIMARY KEY ('id_env_ori') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Contenu de la table 'env_origine' -- INSERT INTO 'env_origine' ('id_env_ori', 'plateforme_ori', 'compo_middle_ori', 'appli_nom_flux_ori', 'rel_int_flux_indirect') VALUES (1, 'production', 'apache/http', 'abcd/http', ''), (2, 'production', 'apache/http', 'abcd/http', ''), (3, 'production', 'apache/http', 'apache IIS', ''), (4, 'production', 'apache/http', 'apache IIS', ''), (5, 'recette', 'apache/http', 'abcd/http', ''), (6, 'recette', 'apache/http', 'abcd/http', ''), (7, 'recette', 'apache/http', 'apache IIS', ''), (8, 'recette', 'apache/http', 'apache IIS', ''); -- -------------------------------------------------------- -- -- Structure de la table 'est_connecte' -- CREATE TABLE IF NOT EXISTS 'est_connecte' ( 'id_serv' int(11) NOT NULL AUTO_INCREMENT, 'id_env_ori' int(11) NOT NULL, PRIMARY KEY ('id_serv','id_env_ori'), KEY 'FK_est_connecte_id_env_ori' ('id_env_ori') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; -- -- Contenu de la table 'est_connecte' -- INSERT INTO 'est_connecte' ('id_serv', 'id_env_ori') VALUES (1, 1), (1, 2), (2, 3), (5, 4), (1, 5), (1, 6), (3, 7), (4, 8); -- -------------------------------------------------------- -- -- Structure de la table 'flux' -- CREATE TABLE IF NOT EXISTS 'flux' ( 'id_flux' int(11) NOT NULL AUTO_INCREMENT, 'categorie_flux' text, 'type_flux' text, PRIMARY KEY ('id_flux') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Contenu de la table 'flux' -- INSERT INTO 'flux' ('id_flux', 'categorie_flux', 'type_flux') VALUES (1, 'client final', 'webservice'), (2, 'client final', 'webservice'), (3, 'applicatif direct', 'client applicatif'), (4, 'applicatif direct', 'client applicatif'), (5, 'client final', 'webservice'), (6, 'client final', 'webservice'), (7, 'applicatif direct', 'client applicatif'), (8, 'applicatif direct', 'client applicatif'); -- -------------------------------------------------------- -- -- Structure de la table 'lier' -- CREATE TABLE IF NOT EXISTS 'lier' ( 'id_flux' int(11) NOT NULL AUTO_INCREMENT, 'id_env_ori' int(11) NOT NULL, 'id_env_destination' int(11) NOT NULL, PRIMARY KEY ('id_flux','id_env_ori','id_env_destination'), KEY 'FK_lier_id_env_ori' ('id_env_ori'), KEY 'FK_lier_id_env_destination' ('id_env_destination') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Contenu de la table 'lier' -- INSERT INTO 'lier' ('id_flux', 'id_env_ori', 'id_env_destination') VALUES (1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5), (6, 6, 6), (7, 7, 7), (8, 8, 8); -- -------------------------------------------------------- -- -- Structure de la table 'possede' -- CREATE TABLE IF NOT EXISTS 'possede' ( 'id_serv' int(11) NOT NULL AUTO_INCREMENT, 'id_env_destination' int(11) NOT NULL, PRIMARY KEY ('id_serv','id_env_destination'), KEY 'FK_possede_id_env_destination' ('id_env_destination') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ; -- -- Contenu de la table 'possede' -- INSERT INTO 'possede' ('id_serv', 'id_env_destination') VALUES (2, 1), (5, 2), (11, 3), (12, 3), (13, 3), (14, 3), (11, 4), (12, 4), (13, 4), (14, 4), (3, 5), (3, 6), (15, 7), (16, 7), (15, 8), (16, 8); -- -------------------------------------------------------- -- -- Structure de la table 'serveur' -- CREATE TABLE IF NOT EXISTS 'serveur' ( 'id_serv' int(11) NOT NULL AUTO_INCREMENT, 'nom_serv' text, 'ip_serv' text, PRIMARY KEY ('id_serv') ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ; -- -- Contenu de la table 'serveur' -- INSERT INTO 'serveur' ('id_serv', 'nom_serv', 'ip_serv') VALUES (1, 'INTERNET\r\n', NULL), (2, 'caracas\r\n', NULL), (3, 'maiquetia\r\n', NULL), (4, 'marcaibo\r\n', NULL), (5, 'cabudare', NULL), (11, 'SBSAIVXL005', NULL), (12, 'SBSAIVXL006\r\n', NULL), (13, 'SBSAIVXL007', NULL), (14, 'SBSAIVXL008\r\n', NULL), (15, 'SBSAIVRE001', NULL), (16, 'SBSAIVRE002\r\n', NULL); -- -- Contraintes pour les tables exportées -- -- -- Contraintes pour la table 'contient' -- ALTER TABLE 'contient' ADD CONSTRAINT 'FK_contient_id_flux' FOREIGN KEY ('id_flux') REFERENCES 'flux' ('id_flux'), ADD CONSTRAINT 'FK_contient_id_appli' FOREIGN KEY ('id_appli') REFERENCES 'application' ('id_appli'); -- -- Contraintes pour la table 'correpond' -- ALTER TABLE 'correpond' ADD CONSTRAINT 'FK_correpond_id_corres' FOREIGN KEY ('id_corres') REFERENCES 'correspondance' ('id_corres'), ADD CONSTRAINT 'FK_correpond_id_flux' FOREIGN KEY ('id_flux') REFERENCES 'flux' ('id_flux'); -- -- Contraintes pour la table 'est_connecte' -- ALTER TABLE 'est_connecte' ADD CONSTRAINT 'FK_est_connecte_id_env_ori' FOREIGN KEY ('id_env_ori') REFERENCES 'env_origine' ('id_env_ori'), ADD CONSTRAINT 'FK_est_connecte_id_serv' FOREIGN KEY ('id_serv') REFERENCES 'serveur' ('id_serv'); -- -- Contraintes pour la table 'lier' -- ALTER TABLE 'lier' ADD CONSTRAINT 'FK_lier_id_env_destination' FOREIGN KEY ('id_env_destination') REFERENCES 'env_destination' ('id_env_destination'), ADD CONSTRAINT 'FK_lier_id_env_ori' FOREIGN KEY ('id_env_ori') REFERENCES 'env_origine' ('id_env_ori'), ADD CONSTRAINT 'FK_lier_id_flux' FOREIGN KEY ('id_flux') REFERENCES 'flux' ('id_flux'); -- -- Contraintes pour la table 'possede' -- ALTER TABLE 'possede' ADD CONSTRAINT 'FK_possede_id_env_destination' FOREIGN KEY ('id_env_destination') REFERENCES 'env_destination' ('id_env_destination'), ADD CONSTRAINT 'FK_possede_id_serv' FOREIGN KEY ('id_serv') REFERENCES 'serveur' ('id_serv');
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
14 juin 2011 à 17:57
14 juin 2011 à 17:57
Salut,
J'avais oublier les noms des tables, quand on utilise les jointures avec delete, il faut préciser les noms des tables don't les lignes seront supprimés.
Maintenant si t'exécute cette requête tu aura un message d'erreur genre (Cannot delete or update a parent row: a foreign key constraint fails ..) à cause des clés étrangères, tu doit ajouter la contrainte on delete cascade.
J'avais oublier les noms des tables, quand on utilise les jointures avec delete, il faut préciser les noms des tables don't les lignes seront supprimés.
DELETE application,contient,flux, correpond, correspondance ,lier, env_origine, env_destination FROM application LEFT JOIN contient ON(application.id_appli=contient.id_appli) LEFT JOIN flux ON(contient.id_flux=flux.id_flux) LEFT JOIN correpond ON (flux.id_flux=correpond.id_flux) LEFT JOIN correspondance ON (correpond.id_corres=correspondance.id_corres) LEFT JOIN lier ON (flux.id_flux=lier.id_flux) LEFT JOIN env_origine ON (env_origine.id_env_ori=lier.id_env_ori) LEFT JOIN env_destination ON (lier.id_env_destination=env_destination.id_env_destination) WHERE application.id_appli = 1
Maintenant si t'exécute cette requête tu aura un message d'erreur genre (Cannot delete or update a parent row: a foreign key constraint fails ..) à cause des clés étrangères, tu doit ajouter la contrainte on delete cascade.
ALTER TABLE 'contient' ADD CONSTRAINT 'FK_contient_id_flux' FOREIGN KEY ('id_flux') REFERENCES 'flux' ('id_flux') ON DELETE CASCADE , ADD CONSTRAINT 'FK_contient_id_appli' FOREIGN KEY ('id_appli') REFERENCES 'application' ('id_appli') ON DELETE CASCADE ; -- -- Contraintes pour la table 'correpond' -- ALTER TABLE 'correpond' ADD CONSTRAINT 'FK_correpond_id_corres' FOREIGN KEY ('id_corres') REFERENCES 'correspondance' ('id_corres') ON DELETE CASCADE , ADD CONSTRAINT 'FK_correpond_id_flux' FOREIGN KEY ('id_flux') REFERENCES 'flux' ('id_flux') ON DELETE CASCADE ; -- -- Contraintes pour la table 'est_connecte' -- ALTER TABLE 'est_connecte' ADD CONSTRAINT 'FK_est_connecte_id_env_ori' FOREIGN KEY ('id_env_ori') REFERENCES 'env_origine' ('id_env_ori') ON DELETE CASCADE , ADD CONSTRAINT 'FK_est_connecte_id_serv' FOREIGN KEY ('id_serv') REFERENCES 'serveur' ('id_serv') ON DELETE CASCADE); -- -- Contraintes pour la table 'lier' -- ALTER TABLE 'lier' ADD CONSTRAINT 'FK_lier_id_env_destination' FOREIGN KEY ('id_env_destination') REFERENCES 'env_destination' ('id_env_destination') ON DELETE CASCADE , ADD CONSTRAINT 'FK_lier_id_env_ori' FOREIGN KEY ('id_env_ori') REFERENCES 'env_origine' ('id_env_ori') ON DELETE CASCADE , ADD CONSTRAINT 'FK_lier_id_flux' FOREIGN KEY ('id_flux') REFERENCES 'flux' ('id_flux') ON DELETE CASCADE ; -- -- Contraintes pour la table 'possede' -- ALTER TABLE 'possede' ADD CONSTRAINT 'FK_possede_id_env_destination' FOREIGN KEY ('id_env_destination') REFERENCES 'env_destination' ('id_env_destination') ON DELETE CASCADE , ADD CONSTRAINT 'FK_possede_id_serv' FOREIGN KEY ('id_serv') REFERENCES 'serveur' ('id_serv') ON DELETE CASCADE ;
je suis rentré chez moi, j'essayerai donc demain mais en tout cas en lisant, jme dit que en cherchant un peu plus j'aurai peut être trouvé, m'enfin tu m'enlève une grosse épine du pied :)
merci @ toi
merci @ toi
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
14 juin 2011 à 18:09
14 juin 2011 à 18:09
J'ai tester la requête chez moi est ça marche, faut juste que t'ajoute la contrainte "on delete cascade" pour les clés étrangères.
Ravi d'avoir pu t'aider et si y a autre chose n'hésite pas.
Ravi d'avoir pu t'aider et si y a autre chose n'hésite pas.
Re-Bonjour ^^
Bah écoute, j'ai essayer ce que tu m'as dit, cela ne marche pas, pourtant tout m'as l'air bien, mais j'ai cette erreur au moment de l'alter table pour ajouter le cascade :
#1005 - Ne peut créer la table 'db_carto.#sql-a54_37' (Errcode: 121) (<a href="server_engines.php?engine=InnoDB&page=Status&token=d97f31a0fc32768e1e02b331894a49c2">Détails...</a>)
voila donc je sais vraiment pas pourquoi j'ai un probleme alors que tu n'en as pas
Bah écoute, j'ai essayer ce que tu m'as dit, cela ne marche pas, pourtant tout m'as l'air bien, mais j'ai cette erreur au moment de l'alter table pour ajouter le cascade :
#1005 - Ne peut créer la table 'db_carto.#sql-a54_37' (Errcode: 121) (<a href="server_engines.php?engine=InnoDB&page=Status&token=d97f31a0fc32768e1e02b331894a49c2">Détails...</a>)
voila donc je sais vraiment pas pourquoi j'ai un probleme alors que tu n'en as pas