在開發與運維中,經常需要基於現有表快速創建新表。MySQL 提供了極為簡潔的語法來實現表結構與數據的複製。
利用 WHERE 1=2 條件永不成立的特性,只複製結構:
CREATE TABLE new_table SELECT * FROM old_table WHERE 1=2;
新表將擁有與舊表相同的列定義、數據類型,但不包含任何數據行。
直接省略 WHERE 條件即可完整複製:
CREATE TABLE new_table SELECT * FROM old_table;
此操作會將舊表的所有數據行插入新表中。
CREATE TABLE new_table LIKE old_table; 再配合 INSERT INTO new_table SELECT * FROM old_table;。