SQL Server 支援 SELECT * INTO new_table FROM old_table 一鍵複製結構與資料,但 MySQL 不支援此語法。本文整理 MySQL 等效方案、匯出檔案用法與跨庫遷移實戰流程。
CREATE TABLE new_table_name (SELECT * FROM old_table_name);
一次完成建表 + 資料複製,索引/約束/自增屬性 不會 復制,需補充 ALTER TABLE。
mysqldump -u root -p -h 192.168.0.88 ok_db oktable2 > ok_db.sqlok_db.sql 修改 CREATE TABLE \`oktable2\` → CREATE TABLE \`new_table\`USE ok_db;SOURCE d:\ok_db.sql;SELECT * INTO new_table_name FROM old_table_name;
SELECT * INTO OUTFILE 'C:\\outfile.txt' FROM test;
SELECT * INTO OUTFILE 'C:\\outfile1.txt' FROM test WHERE beginDate='2008-06-08';
FILE 權限:GRANT FILE ON *.* TO 'user'@'host';secure_file_priv 指定目錄)\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 + 修改表名 + SOURCE | SELECT * INTO new FROM old(含索引) |
| 匯出文字檔 | SELECT ... INTO OUTFILE | BCP / Import/Export Wizard |
| 跨主機遷移 | mysqldump | mysql 管道 | Linked Server / SSIS |
理解差異、選對工具,跨平台遷移不再踩坑。