SELECT INTO 複製資料到新表
SELECT INTO 用來將查詢結果複製到一個新建立的資料表中。常用於備份資料表或建立資料表副本。
MySQL 不支援 SELECT INTO 語法,可以使用 CREATE TABLE ... SELECT 或 INSERT INTO ... SELECT 替代。
語法
SELECT column1, column2, ...
INTO new_table
FROM source_table
WHERE condition;
複製整個資料表
-- SQL Server / PostgreSQL
SELECT * INTO customers_backup
FROM customers;
MySQL 替代寫法:
CREATE TABLE customers_backup AS
SELECT * FROM customers;
複製部分欄位
SELECT id, name, email
INTO customers_contact
FROM customers;
複製部分資料
搭配 WHERE 條件複製特定資料:
SELECT * INTO vip_customers
FROM customers
WHERE total_purchases > 100000;
只複製表格結構
使用永遠不成立的條件來只複製結構:
-- SQL Server / PostgreSQL
SELECT * INTO customers_empty
FROM customers
WHERE 1 = 0;
MySQL:
CREATE TABLE customers_empty LIKE customers;
複製到其他資料庫
SQL Server:
SELECT * INTO backup_db.dbo.customers_backup
FROM customers;