Pour le cas d'essai dans un projet, je dois supprimer un enregistrement si l'un des champs répond à une des conditions.
Le plus facile semble être simple déclencheur: mais je suppose que j'ai eu une erreur: p> Set de test de mise à jour res = 3 où id = 1; Comment peut-on effectuer uniquement en ayant accès à la base de données? Je veux dire que je ne devrais pas changer l'application testée. P> p>
Erreur 1442 (HY000): Impossible de mettre à jour la table 'Test' dans la fonction / déclenchement stockée car il est déjà utilisé par l'instruction qui a appelé cette fonction / déclenchement enregistrée. P>
blockQuote>
3 Réponses :
Ce que vous devrez peut-être faire est d'utiliser l'insertion avant la gâchette pour vérifier si l'enregistrement étant ajouté n'est pas valide. P>
Ceci donc question fournit des détails sur la façon de dipose de l'enregistrement non valide: Prévenir l'insertion P>
Le suppléant consiste à modifier votre programme pour insérer un enregistrement dans une autre table qui a une gâchette pour purger la table souhaitée. P>
Dans une gâchette, vous ne pouvez pas modifier la table à laquelle appartient la gâchette.
Vous ne pouvez pas non plus quelque chose qui modifie indirectement cette table.
Il y a cependant quelques autres choses que vous pouvez faire. Si vous ne supprimez pas une ligne, mais ajoutez un champ Notez que la gâchette doit être Vous pouvez ajouter un rappel de suppression à une table temporaire et testez ce tableau après votre déclaration de mise à jour. p> Vous devez maintenant modifier votre instruction de mise à jour à: p> bien sûr si vous Strong> Vos lignes Vous pouvez simplifier le code de suppression à: p> supprimé code> alors vous pouvez marquer kbd> comme étant supprimé comme. P>
avant code> si vous souhaitez modifier quoi que ce soit dans la ligne. p>
Mes quelques centimes: - L'ajout de la colonne «supprimée» est considérée comme une modification de la structure de la table. Par conséquent, non recommandé sauf si c'est un nouveau développement. P>
Si c'est une application héritée, il vaut mieux - Ajoutez un rappel de suppression à une table temporaire et testez ce tableau après votre relevé de mise à jour. p>