萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 同表資料複製與插入:INSERT INTO SELECT 實戰指南

在 MySQL 中,若需從資料表讀取資料並修改後重新插入同一張表,或是複製資料到結構相同/不同的新表,INSERT INTO ... SELECT 語法是最高效的解決方案。本文透過實例詳解各種應用場景。

核心語法

-- 複製所有欄位(結構完全相同)
INSERT INTO new_table SELECT * FROM old_table;

-- 指定欄位複製(結構不同)
INSERT INTO new_table (col1, col2, ...) SELECT col1, col2, ... FROM old_table;

實戰範例:同表複製並修改特定欄位

INSERT INTO your_table (ID, ISO3, TEXT)
SELECT ID, 'JPN', TEXT FROM your_table WHERE ID IN (列表);
-- 'JPN' 為常數值,可直接在 SELECT 列表中指定欲修改的欄位值

補充:快速建表並複製結構與資料

  • 複製結構+資料: CREATE TABLE new_table SELECT * FROM old_table;
  • 僅複製結構: CREATE TABLE new_table SELECT * FROM old_table WHERE 1=2;(條件永不成立)

注意:INSERT INTO ... SELECT 若涉及自增主鍵,需避免主鍵衝突;建議在 SELECT 中排除自增欄位或使用 REPLACE INTO / ON DUPLICATE KEY UPDATE 處理衝突。

copyright © 萬盛學電腦網 all rights reserved