Erreur MySQL : impossible de mettre à jour la table dans la fonction/le déclencheur stocké
Question :
Lorsque vous tentez d'insérer une nouvelle ligne dans une table MySQL à l'aide d'un déclencheur, l'erreur suivante se produit :
Can't update table 'brandnames' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Réponse :
Cette erreur se produit lorsque le déclencheur INSERT tente de modifier la table qui l'a invoqué. MySQL interdit ce comportement pour deux raisons principales :
Pour résoudre cette erreur, envisagez d'utiliser les approches suivantes :
Par exemple, pour créer un champ de nom court à partir des deux premiers caractères d'un nom complet, le déclencheur BEFORE INSERT suivant peut être utilisé :
CREATE TRIGGER `capital` BEFORE INSERT ON `brandnames` FOR EACH ROW BEGIN SET NEW.short_name = CONCAT(UCASE(LEFT(NEW.full_name,1)) , LCASE(SUBSTRING(NEW.full_name,2))) END
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!