Du kan inte ändra en tabell medan INSERT-utlösaren utlöses. INSERT kan göra en viss låsning som kan resultera i ett dödläge. Dessutom skulle en uppdatering av tabellen från en trigger göra att samma trigger aktiveras igen i en oändlig rekursiv loop. Båda dessa skäl är varför MySQL hindrar dig från att göra detta.
Men beroende på vad du försöker uppnå kan du komma åt de nya värdena genom att använda NEW.fieldname eller till och med de gamla värdena--om du gör en UPPDATERING--med OLD.
Om du hade en rad med namnet full_brand_name
och du ville använda de två första bokstäverna som ett kort namn i fältet small_name
du kan använda:
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