13.1.18.3 CREATE TABLE ... LIKE Statement (original) (raw)

13.1.18.3 CREATE TABLE ... LIKE Statement

Use CREATE TABLE ... LIKE to create an empty table based on the definition of another table, including any column attributes and indexes defined in the original table:

CREATE TABLE new_tbl LIKE orig_tbl;

The copy is created using the same version of the table storage format as the original table. TheSELECT privilege is required on the original table.

LIKE works only for base tables, not for views.

Important

You cannot execute CREATE TABLE orCREATE TABLE ... LIKE while aLOCK TABLES statement is in effect.

CREATE TABLE ... LIKE makes the same checks asCREATE TABLE and does not just copy the .frm file. This means that, if the current SQL mode is different from the mode in effect when the original table was created, the table definition might be considered invalid for the new mode, and the statement fails.

For CREATE TABLE ... LIKE, the destination table preserves generated column information from the original table.

CREATE TABLE ... LIKE does not preserve anyDATA DIRECTORY or INDEX DIRECTORY table options that were specified for the original table, or any foreign key definitions.

If the original table is a TEMPORARY table,CREATE TABLE ... LIKE does not preserveTEMPORARY. To create aTEMPORARY destination table, useCREATE TEMPORARY TABLE ... LIKE.