首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料表複製技巧:結構、資料、指定欄位、條件篩選四種模式

     編輯:MySQL 資料庫相關知識

MySQL 以 CREATE TABLE ... LIKE、CREATE TABLE ... AS SELECT 兩大語法族群,涵蓋四種常見複製需求。

四種模式語法對照

需求SQL 語句特性
僅複製結構 (含索引/主鍵)CREATE TABLE new_tbl LIKE old_tbl;最快、不複製資料、保留所有約束
複製結構 + 所有資料CREATE TABLE new_tbl AS SELECT * FROM old_tbl;不保留主鍵、索引、AUTO_INCREMENT,需手動補齊
完美複製 (結構+索引+資料)CREATE TABLE new_tbl LIKE old_tbl;
INSERT INTO new_tbl SELECT * FROM old_tbl;
標準做法,兩步驟完成
僅複製指定欄位CREATE TABLE new_tbl AS SELECT col1, col2 FROM old_tbl;新表僅含指定欄位,型別推導自查詢結果
條件篩選複製CREATE TABLE new_tbl AS SELECT * FROM old_tbl WHERE col = 'val';同指定欄位,僅複製符合條件的列

進階:保留 AUTO_INCREMENT 與主鍵 (單陳述式)

CREATE TABLE new_tbl (
    SELECT * FROM old_tbl WHERE 1=0  -- 僅取結構
);
ALTER TABLE new_tbl ADD PRIMARY KEY (id);  -- 視情況補齊

效能提示

  • 大表複製優先用 LIKE + INSERT ... SELECT,可分批次提交控制事務大小。
  • CREATE TABLE ... AS SELECT 會觸發隱含提交,無法回滾,生產環境謹慎使用。
  • 跨資料庫複製:CREATE TABLE db2.new_tbl LIKE db1.old_tbl;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved