It is very useful to copy table data from a old existing table to a new table when you need to back up data and replicating the production data for testing.
To copy data from one table to another table, you can use CREATE TABLE and SELECT statements as follows.
Simple example of copy table:
CREATE TABLE new_tbl SELECT * FROM old_tbl;
To copy partial data from an existing table to the new table, you can use WHERE clause in the SELECT statement as follows:
CREATE TABLE new_tbl SELECT * FROM old_tbl WHERE conditions;
This SQL is used for copying tables, here the contents of old_tbl will be copied to new_tbl.
Make sure the new_tbl does not exist in the database.
Read Also: INSERT … ON DUPLICATE KEY UPDATE
At first, MySQL creates a new table with the name assigned in the CREATE TABLE statement. The structure of a new table is defined by the result set of a SELECT statement. Second, MySQL populates data which comes from a SELECT statement to a new table.
Before creating a new table it is very important to check whether the table you want to create that already exists or not. To do so, you can use IF NOT EXIST clause in the CREATE TABLE statement as below:
CREATE TABLE IF NOT EXISTS new_tbl SELECT * FROM old_tbl;