Update DATE field when another field in the same table changes value
A Trigger can't update another row of the same table as the row, the trigger was called from.

The typical way to do that, is to create a stored procedure, that inserts into/Updates the target table, then updates the other row(s), all in a transaction.



Another option for you might be the ON UPDATE constraint that you can add to your table 
- this option comes only from 5.5 up. 

See example here 

mysql&gt; create table your_table (date_updated DATETIME ON UPDATE CURRENT_TIMESTAMP, yearofarrival int  );
Query OK, 0 rows affected (0.04 sec)

mysql&gt; insert into your_table values (now() - INTERVAL 1 DAY, 100);
Query OK, 1 row affected (0.01 sec)

mysql&gt; commit;
Query OK, 0 rows affected (0.00 sec)

mysql&gt; select * from your_table;
+---------------------+---------------+
| date_updated        | yearofarrival |
+---------------------+---------------+
| 2014-03-06 12:00:59 |           100 |
+---------------------+---------------+
1 row in set (0.00 sec)

mysql&gt; update  your_table set yearofarrival= 1998;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql&gt; commit;
Query OK, 0 rows affected (0.00 sec)

mysql&gt; select * from your_table;
+---------------------+---------------+
| date_updated        | yearofarrival |
+---------------------+---------------+
| 2014-03-07 12:01:16 |          1998 |
+---------------------+---------------+
1 row in set (0.00 sec)

mysql&gt;


Should i explain what i have posted here ? 

By adding this constraint to your column , every time you alter your yearofarrival  column the date_updated  will be automaticly updated with the CURRENT_TIMESTAMP value!