許多從其他資料庫(如 SQL Server)轉向 MySQL 的開發者,會嘗試使用 SELECT * INTO new_table FROM old_table 來複製資料表結構與資料,但在 MySQL 中執行時會報錯,提示目標資料表不存在。這是因為 MySQL 不支援 SELECT INTO 這種建表語法。
MySQL 提供了標準的 CREATE TABLE ... SELECT 語法,可一次完成建立新表並複製資料:
CREATE TABLE persons_backup AS SELECT * FROM persons;
或明確指定欄位:
CREATE TABLE persons_backup (id INT, name VARCHAR(50)) SELECT id, name FROM persons;
WHERE 1=0 或使用 LIKE:CREATE TABLE new_table LIKE old_table;SHOW CREATE TABLE old_table 取得建表語句,修改表名後執行。此語法常用於備份資料表、建立測試資料集、跨資料庫遷移資料等場景,是 MySQL 開發者必備的技巧之一。