Mysql – Duplicating a MySQL table, indices, and data

MySQL

How do I copy or clone or duplicate the data, structure,
and indices of a MySQL table to a new one?

This is what I've found so far.

This will copy the data and the structure,
but not the indices:

create table {new_table} select * from {old_table};

This will copy the structure and indices,
but not the data:

create table {new_table} like {old_table};

Best Answer

To copy with indexes and triggers do these 2 queries:

CREATE TABLE new_table LIKE old_table; 
INSERT INTO new_table SELECT * FROM old_table;

To copy just structure and data use this one:

CREATE TABLE new_table AS SELECT * FROM old_table;

I've asked this before:

Copy a MySQL table including indexes