¿Ves ese "NEW" que está en el codigo?
Bueno, el tema es que no puedes usar los valores de los campos de la tabla directamente, porque o no existen aún (BEFORE), o ya están en ella (AFTER).
Tampoco puedes acceder a las variables que usaste, porque no existen para el TRIGGER.
¿Entonces cómo accedes a los valores que llegan?
Bueno, si hubieses leído el link que te pasé te habrías enterado que existen dos pseudovariables denominadas NEW y OLD, que vienen a representar los estados del registro que estás manipulando.
NEW es el que refiere al los datos entrantes, OLD a los que ya estaban en la tabla.
Cuando tu pusiste esto:
Cita: `nombre`='NombreModificado'
y esto:
Cita: `nuevosdatos.codigo`=`persona.codigo`
MySQL no sabía a qué te estabas refiriendo, porque no existen esos objetos para el TRIGGER. Además en el segundo caso está completamente mal escrito, porque el punto separa bloques tabla.columna, y tu enmarcaste todo como una sola cosa.
¿Se va entendiendo?
Lee el link. contiene buenos ejemplos.