Du kan ikke ændre en tabel, mens INSERT-triggeren udløses. INSERT'en kan muligvis låse noget, hvilket kan resultere i dødlås. Desuden vil opdatering af tabellen fra en trigger få den samme trigger til at udløse igen i en uendelig rekursiv løkke. Begge disse grunde er, hvorfor MySQL forhindrer dig i at gøre dette.
Men afhængigt af hvad du forsøger at opnå, kan du få adgang til de nye værdier ved at bruge NEW.fieldname eller endda de gamle værdier--hvis du laver en OPDATERING--med OLD.
Hvis du havde en række ved navn full_brand_name
og du ønskede at bruge de første to bogstaver som et kort navn i feltet small_name
du kan bruge:
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