Replacing MYSQL table with data from another table - no downtime
How about a view? Point your application at the view and then alter the view at an instant when there is no access to point to table2. Once that is done, you could drop table1.