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

MySQL 表間資料複製:同庫與跨庫實戰語法大全

     編輯:MySQL 綜合教學

MySQL 表間資料複製:同庫與跨庫實戰語法大全

場景一:同資料庫表間複製

-- 全量
INSERT INTO db_target.t1 SELECT * FROM db_source.t1;

-- 指定欄位
INSERT INTO db_target.t1 (id, name, email) 
SELECT id, username, email FROM db_source.users WHERE created_at > '2024-01-01';

場景三:結構不同表的欄位映射複製

-- 僅結構
CREATE TABLE new_table LIKE old_table;

-- 結構 + 資料
CREATE TABLE new_table AS SELECT * FROM old_table;

-- 跨庫建表複製
CREATE TABLE db2.new_table AS SELECT * FROM db1.old_table;

場景五:大表分批複製(避免長事務鎖表)

項目說明
自增主鍵目標表若有 AUTO_INCREMENT,INSERT 不指定 id 會自動生成;若需保留原 id,需 SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO'
觸發器INSERT 會觸發目標表 BEFORE/AFTER INSERT 觸發器
外鍵約束若目標表有 FK,來源資料必須滿足引用完整性
字符集跨庫複製確保字符集一致,否則可能亂碼
權限執行帳號需擁有來源表 SELECT、目標表 INSERT 權限


進階工具推薦

  • pt-archiver:Percona Toolkit 組件,支援分塊、條件、延遲、檢查和刪除來源
  • mysqldump + pipe:mysqldump db1 t1 | mysql db2 適合全表遷移
  • DataX / Canal:異構/同步場景
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved