Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 10h10   #1
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Par défaut Delete des entrées qui ne repondent pas à une contrainte

Salut

J'ai une belle table

Code :
1
2
3
4
5
6
7
8
9
10
 
CREATE TABLE IF NOT EXISTS `demandeur` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `is_active` tinyint(1) DEFAULT '1',
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `deleted_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=273 ;
Ayant une contrainte héritée depuis une autre table :

Code :
  ADD CONSTRAINT `fiche_demandeur_id_demandeur_id` FOREIGN KEY (`demandeur_id`) REFERENCES `demandeur` (`id`),
Je suis en pleine phase de de-bug de ma partie applicative, mais j'ai une entrée de data qui merdoi et qui me génère des erreurs, le champs name ressort vide. Bref!

Je lance la commande suivante :
Code :
DELETE FROM `demandeur` WHERE `demandeur`.`name`=""
Mais j'ai le retour du style :
Citation:
Cannot delete or update a parent row: a foreign key constraint fails (`criels`.`fiche`, CONSTRAINT `fiche_demandeur_id_demandeur_id` FOREIGN KEY (`demandeur_id`) REFERENCES `demandeur` (`id`))
Cela m'indique que j'ai encore des entrées attachées à une autre entrée mais j'ai une grande majorité de ces entrées qui ne sont plus attachées.

Ma question est la suivante est-il possible de lancer le delete et de lui dire de faire les entrées où le delete est possible ?

Merci d'avance
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 10h44   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Tu aurais peut-être dû ajouter à ta contrainte de clé étrangère.

Ceci signifie que lorsque tu vas supprimer un demandeur, toutes les lignes référençant ce demandeur seront elles aussi supprimées. Vérifie donc ce que tu supprimes avant !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 10h56   #3
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Merci de ta réponse mais cela n'est pas possible car l'on fait du "soft delete".
Là il s'agissait de faire du nettoyage en raison d'un bug formulaire.
Bon de toute manière on se l'est tapé à la main

Encore Merci
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h57.


 
 
 
 
Partenaires

Hébergement Web