That seems like an overly complex way to do the standard:
create table foo_history;
create view foo as select * from foo_history order by date_added desc limit 1;