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;