首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 複製表結構與數據的三種高效方法:LIKE、SELECT LIMIT 0 與 SHOW CREATE TABLE

     編輯:MySQL 綜合教學

MySQL 複製表結構/數據三大方法實戰

場景:操作前備份表結構與數據,避免誤刪。比 mysqldump 或複製文件更輕量。

一、僅複製表結構

方法 1:CREATE TABLE ... LIKE(推薦,最快)

CREATE TABLE new_table LIKE old_table;

完整複製列定義、索引、引擎、字符集、自增值。

方法 2:CREATE TABLE ... SELECT ... LIMIT 0

CREATE TABLE new_table SELECT * FROM old_table LIMIT 0;

複製列定義與部分屬性,但不複製索引、主鍵、自增、外鍵,需手動補充。

方法 3:SHOW CREATE TABLE + 手動修改

SHOW CREATE TABLE old_table\G
-- 複製輸出的 SQL,修改表名、AUTO_INCREMENT 值後執行

完全可控,適合跨實例、需調整結構場景。

二、複製表結構與數據

方法 1:CREATE TABLE ... SELECT *(最常用)

CREATE TABLE new_table SELECT * FROM old_table;

一次性複製結構+所有數據,但同樣不複製索引/主鍵/自增。

方法 2:條件複製部分列/行

CREATE TABLE new_table SELECT col1, col2 FROM old_table WHERE id=1;

靈活篩選列與行。

方法 3:先建空表再 INSERT SELECT

CREATE TABLE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;
-- 或指定列
INSERT INTO new_table(col1, col2) SELECT col1, col2 FROM old_table;

保留索引/主鍵/自增,適合需保持完整結構場景。

總結選擇指南

需求推薦方法備註
僅結構,保留索引/主鍵/自增CREATE TABLE ... LIKE最快、最完整
僅結構,不需索引CREATE TABLE ... SELECT LIMIT 0輕量
結構+數據,保留索引/主鍵LIKE + INSERT SELECT兩步驟,最完整
結構+數據,不需索引CREATE TABLE ... SELECT *單語句,最快
部分列/行CREATE TABLE ... SELECT col ... WHERE靈活
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved