新表存在時:
1.兩個表的結構一樣
INSERT INTO 新表
SELECT * FROM 舊錶;
2.兩個表的結構不一樣
INSERT INTO 新表 (字段1,字段2,...)
SELECT 字段1,字段2,...
FROM 舊錶;
新表不存在時:
1.複製表結構和數據到新表
SELECT * INTO 新表
FROM 舊錶
/* MYSQL不適用 */
2. 只複製表結構到新表
- 方法一、
CREATE TABLE 新表
SELECT * FROM 舊錶
WHERE 1=2; /* 即:讓WHERE條件不成立 */
- 方法二、
CREATE TABLE 新表
LIKE 舊錶;
/* CREAT TABLE LIKE 產生與源表相同的表結構,包括索引和主鍵,
數據需要用INSERT INTO 語句複製進去 */
2.只複製數據到新表
- 複製全部數據(新表和舊錶相同)
CERETE TABLE 新表
SELECT * FROM 舊錶;
/* 這種方法會將舊錶中所有的內容都拷貝過來,用這種方法需要注意,
新表中沒有了舊錶中的primary key,Extra,auto_increment等屬性 */
- 複製某幾列數據(新表列數可以多於或者小於舊錶列數)
CREAT TABLE 新表 AS SELECT 字段1,字段2,...
FROM 舊錶;
/* CREAT TABLE AS 只是複製原數據,其實就是把查詢的結果建一個表 */