J'exécute une requête MySQL. Cependant, lors de l'ajout d'une nouvelle ligne à partir de la saisie du formulaire, j'obtiens cette erreur :
Error: Can't update table 'brandnames' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
D'après le code :
CREATE TRIGGER `capital` AFTER INSERT ON `brandnames` FOR EACH ROW UPDATE brandnames SET bname = CONCAT( UCASE( LEFT( bname, 1 ) ) , LCASE( SUBSTRING( bname, 2 ) ) )
Que signifie cette erreur ?
La syntaxe correcte est :
Quand
INSERT触发器触发时,您无法更改表。INSERTcertaines opérations de verrouillage peuvent être effectuées, ce qui peut entraîner un blocage. De plus, la mise à jour de la table à partir d'un déclencheur entraînera le déclenchement à nouveau du même déclencheur dans une boucle récursive infinie. Ces deux raisons expliquent pourquoiMySQLvous empêche de faire cela.Cependant, en fonction de ce que vous souhaitez réaliser, vous pouvez utiliser
NEW.fieldname访问新值,甚至可以使用旧值- 如果执行UPDATE--与OLD.Si vous avez un champ nommé
full_brand_name的行,并且您想在small_nameutilisant les deux premières lettres comme nom court, vous pouvez utiliser :