How to copy records from one table to another or itself in mysql
-- Create temp table
DROP TABLE IF EXISTS table_tmp;
CREATE TABLE table_tmp LIKE <source_table_name>;
-- Copy data to temp table
INSERT table_tmp SELECT * FROM <source_table_name> WHERE <condition>;
-- If the id is AUTO_INCREMENT, remove this properties and set to null, if not, skip these lines
ALTER TABLE `table_tmp` CHANGE `id` `id` INT( 10 ) NOT NULL;
ALTER TABLE table_tmp DROP PRIMARY KEY;
ALTER TABLE `table_tmp` CHANGE `id` `id` INT( 10 ) NULL;
-- End delete AUTO_INCREMENT commands
-- Update some properties in the copied record if need, this line is example only ;
UPDATE table_tmp SET id=NULL, year = 2012, term = 1;
-- Copy new data to <desc_table_name>, may be same with <source_table_name>
INSERT <desc_table_name> SELECT * FROM table_tmp;
--Remove temp table
DROP TABLE IF EXISTS table_tmp;