Non è possibile modificare una tabella mentre si attiva il trigger INSERT. INSERT potrebbe eseguire alcuni blocchi che potrebbero causare un deadlock. Inoltre, l'aggiornamento della tabella da un trigger provocherebbe l'attivazione dello stesso trigger in un ciclo ricorsivo infinito. Entrambi questi motivi sono il motivo per cui MySQL ti impedisce di farlo.
Tuttavia, a seconda di ciò che stai cercando di ottenere, puoi accedere ai nuovi valori utilizzando NEW.fieldname o anche i vecchi valori, se stai effettuando un AGGIORNAMENTO, con OLD.
Se avevi una riga denominata full_brand_name
e volevi usare le prime due lettere come nome breve nel campo small_name
potresti usare:
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