MySQL uses VALUES(columnname) to reference the intended INSERT value (what you might term "NEW") and the target name to reference "OLD". I understand that people might think the bracketed syntax isn't very pleasant because that looks like a function, but it seems more reasonable than NEW (can we use VALUES.columname?);
On balance I
think I
don't like VALUES.column either
, because although it looks all fine when you're doing a single INSERT ... VALUES () it gets confusing if you're INSERTing from a SELECT.