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

MySQL 資料表結構與資料複製的 8 種實用方法對比

     編輯:MySQL 綜合教學

MySQL 資料表結構與資料複製的 8 種實用方法對比

資料表複製是資料庫運維高頻操作,不同場景需選擇最適方案。本文歸納 8 種常用方法並標註優缺點,助您精準選型。

方法對比表

#方法SQL 範例複製內容優點缺點/注意
1CREATE TABLE ... SELECTCREATE TABLE new_tbl SELECT * FROM old_tbl結構+資料單語句完成丟失主鍵、索引、AUTO_INCREMENT,需手動補齊
2CREATE TABLE ... WHERE 1=2CREATE TABLE new_tbl SELECT * FROM old_tbl WHERE 1=2僅結構語法簡單同方法 1,丟失約束;推薦用 LIKE
3CREATE TABLE ... LIKECREATE TABLE new_tbl LIKE old_tbl僅結構完整保留索引、主鍵、約束不複製資料
4INSERT ... SELECT(結構相同)INSERT INTO new_tbl SELECT * FROM old_tbl僅資料高效批量寫入需目標表結構已存在且兼容
5INSERT ... SELECT(結構不同)INSERT INTO new_tbl(c1,c2) SELECT c1,c2 FROM old_tbl僅資料欄位映射靈活需手動對應欄位順序與類型
6SELECT * INTO(SQL Server 語法)SELECT * INTO tbl2 FROM tbl1 WHERE 1=2僅結構語法直觀MySQL 不支援,僅 SQL Server/PostgreSQL 可用
7SHOW CREATE TABLESHOW CREATE TABLE old_tbl結構 DDL獲取精確建表語句需手動修改表名後執行
8mysqldump 導出導入mysqldump db tbl > tbl.sql → mysql db < tbl.sql結構+資料完整保留所有物件屬性涉及檔案 I/O,大表較慢

最佳實踐建議

  1. 生產環境完整複製:CREATE TABLE new LIKE old; INSERT new SELECT * FROM old;(最穩健)
  2. 僅需結構:CREATE TABLE new LIKE old;
  3. 跨庫/異構遷移:mysqldump + 手動調整 DDL 後導入
  4. 大表分批複製:配合 WHERE id BETWEEN ... 分批 INSERT,避免長事務與鎖爭用

核心提醒:CREATE TABLE ... SELECT 看似便捷,實則為「查詢結果建表」,絕不保留任何索引與約束,切勿用於需保持結構一致的場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved