No puede cambiar una tabla mientras el activador INSERTAR se está activando. El INSERTO podría hacer algún bloqueo que podría resultar en un interbloqueo. Además, actualizar la tabla desde un disparador haría que el mismo disparador se disparara nuevamente en un ciclo recursivo infinito. Ambas razones explican por qué MySQL le impide hacer esto.
Sin embargo, dependiendo de lo que intente lograr, puede acceder a los nuevos valores usando NUEVO.nombre de campo o incluso los valores antiguos, si está haciendo una ACTUALIZACIÓN, con VIEJO.
Si tuviera una fila llamada full_brand_name
y quería usar las dos primeras letras como un nombre corto en el campo small_name
podrías usar:
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