資料表 table1 包含欄位 id、name、url。需將 id 與 url 兩個欄位的資料複製到 table2,且 table2 可能只有這兩個欄位或欄位順序不同。
使用 INSERT INTO ... SELECT 陳述式,明確指定目標欄位與來源欄位對應:
INSERT INTO table2 (id, url)
SELECT id, url
FROM table1;
table2 尚不存在,需先建立結構:CREATE TABLE table2 (
id INT PRIMARY KEY,
url VARCHAR(255)
);
若 id 為主鍵,可使用 INSERT IGNORE 或 ON DUPLICATE KEY UPDATE:
INSERT INTO table2 (id, url)
SELECT id, url FROM table1
ON DUPLICATE KEY UPDATE url = VALUES(url);
明確列出欄位清單是最佳實務,能避免因資料表結構變更導致的錯誤,且提升 SQL 可讀性與維護性。