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

MySQL SELECT INTO 與 SQL Server 差異解析:建表複製、匯出檔案與跨資料庫遷移實戰

     編輯:MySQL 綜合教學

MySQL vs SQL Server:SELECT INTO 差異與替代方案

SQL Server 支援 SELECT * INTO new_table FROM old_table 一鍵複製結構與資料,但 MySQL 不支援此語法。本文整理 MySQL 等效方案、匯出檔案用法與跨庫遷移實戰流程。

一、MySQL 複製表結構與資料

方法 1:CREATE TABLE ... SELECT(推薦)

CREATE TABLE new_table_name (SELECT * FROM old_table_name);

一次完成建表 + 資料複製,索引/約束/自增屬性 不會 復制,需補充 ALTER TABLE。

方法 2:mysqldump + Source 還原(完整保留結構)

  1. 匯出:mysqldump -u root -p -h 192.168.0.88 ok_db oktable2 > ok_db.sql
  2. 編輯 ok_db.sql 修改 CREATE TABLE \`oktable2\` → CREATE TABLE \`new_table\`
  3. 登入 MySQL:USE ok_db;
  4. 還原:SOURCE d:\ok_db.sql;

二、SQL Server 原生支援

SELECT * INTO new_table_name FROM old_table_name;

三、MySQL SELECT ... INTO OUTFILE 匯出檔案

1. 全表匯出

SELECT * INTO OUTFILE 'C:\\outfile.txt' FROM test;

2. 條件匯出

SELECT * INTO OUTFILE 'C:\\outfile1.txt' FROM test WHERE beginDate='2008-06-08';

關鍵限制與權限

  • 需 FILE 權限:GRANT FILE ON *.* TO 'user'@'host';
  • 輸出目錄需 MySQL 服務進程寫入權限(通常為 secure_file_priv 指定目錄)
  • 檔案不得已存在,否則報錯
  • 預設分隔符:Tab,換行:\n,可用 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' 自訂

四、跨資料庫/主機遷移最佳實踐

單表遷移

# 來源主機
mysqldump -u user -p db table > table.sql
# 目標主機
mysql -u user -p db < table.sql

多表/全庫遷移

mysqldump -u user -p --databases db1 db2 > multi.sql
mysql -u user -p < multi.sql

僅結構遷移

mysqldump -u user -p -d --add-drop-table db > struct.sql

五、總結對照表

需求MySQL 方案SQL Server
複製表結構+資料CREATE TABLE new (SELECT * FROM old)SELECT * INTO new FROM old
完整複製(含索引/約束)mysqldump + 修改表名 + SOURCESELECT * INTO new FROM old(含索引)
匯出文字檔SELECT ... INTO OUTFILEBCP / Import/Export Wizard
跨主機遷移mysqldump | mysql 管道Linked Server / SSIS

理解差異、選對工具,跨平台遷移不再踩坑。

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