52

I need to duplicate a table in MySQL, making the new table empty. That is, I need to copy only the structure of an existing table to a new one.

2 Answers 2

76

Try the create table LIKE syntax.

create table users2 like users; 

This should give you an empty table (users2) with the same structure as the original (users).

2
  • thanks sir but how about creating the same table and changing the table type from InnoDB to MYISAM at the same time?
    – GianFS
    Commented Jan 18, 2013 at 1:03
  • 4
    You'd have to do that in two steps - either run a SHOW CREATE TABLE and modify the output to suit you, or run a CREATE TABLE LIKE followed by an ALTER TABLE.
    – Brilliand
    Commented Jan 18, 2013 at 22:41
17

There is also another way to create a empty table as existing table and you can use the following command also

create table a select * from users2 limit 0, 0;
2
  • 3
    or CREATE TABLE a SELECT * FROM b WHERE 0=1
    – Alex K
    Commented Mar 15, 2013 at 15:22
  • 1
    Just FYI: doing this will NOT copy the indices.
    – user499054
    Commented May 28, 2014 at 15:08

Not the answer you're looking for? Browse other questions tagged or ask your own question.