SELECT INTO 從來源表查詢資料,並「自動建立新表」存放結果。這在建立備份表、臨時分析表、資料快照時非常方便。注意:MySQL 不支援標準 SELECT INTO,需改用 CREATE TABLE ... SELECT。
SELECT * INTO newtable [IN externaldb] FROM table1;
SELECT column_name(s) INTO newtable [IN externaldb] FROM table1;
newtable:自動建立的新表名稱。IN externaldb:選項,指定建立在其他資料庫(SQL Server 支援)。SELECT 清單決定,可用 AS 別名重新命名。MySQL 不支援 SELECT INTO,請使用:
CREATE TABLE new_table AS SELECT * FROM old_table;
或僅複製結構不複製資料:
CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1=0;
SELECT * INTO WebsitesBackup2016 FROM Websites;
SELECT name, url INTO WebsitesBackup2016 FROM Websites;
SELECT * INTO WebsitesBackup2016 FROM Websites WHERE country = 'CN';
SELECT Websites.name, access_log.count, access_log.date INTO WebsitesBackup2016 FROM Websites LEFT JOIN access_log ON Websites.id = access_log.site_id;
SELECT * INTO newtable FROM table1 WHERE 1=0;
IDENTITY 或 AUTO_INCREMENT,新表可能不保留自動遞增屬性(視資料庫而定)。
提示:新表將使用 SELECT 定義的欄位名稱與類型建立,善用 AS 可讓欄位名稱更具語意。