SQL學習 | 如何將一個表的數據複製到另一個新表

新表存在時:

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 只是複製原數據,其實就是把查詢的結果建一個表 */

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章