Vous ne pouvez pas modifier une table pendant que le déclencheur INSERT est activé. L'INSERT peut effectuer un certain verrouillage, ce qui peut entraîner un blocage. De plus, la mise à jour de la table à partir d'un déclencheur entraînerait alors le déclenchement du même déclencheur dans une boucle récursive infinie. Ces deux raisons expliquent pourquoi MySQL vous empêche de le faire.
Cependant, selon ce que vous essayez d'accomplir, vous pouvez accéder aux nouvelles valeurs en utilisant NEW.fieldname ou même les anciennes valeurs--si vous faites une UPDATE--avec OLD.
Si vous aviez une ligne nommée full_brand_name
et vous vouliez utiliser les deux premières lettres comme nom abrégé dans le champ small_name
vous pouvez utiliser :
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