介紹如何在 PostgreSQL 資料庫中使用 SELECT INTO
將查詢結果儲存至新資料表中。
建立測試用資料
為了示範 SELECT INTO
的使用方式,我們先建立一張測試用的 products
資料表:
-- 建立 products 資料表 CREATE TABLE products ( id serial PRIMARY KEY, name VARCHAR (255), price INTEGER, last_update DATE );
接著新增一些測試用的資料:
-- 新增資料 INSERT INTO products (name, price, last_update) VALUES ('A031', 320, '2015-10-14'), ('C001', 420, '2013-03-08'), ('B021', 280, '2013-12-02'), ('Y158', 690, '2015-11-21'), ('A202', 195, '2019-02-23'), ('D022', 540, '2017-03-19');
顯示測試用的資料:
-- 顯示所有資料 SELECT * FROM products;
id | name | price | last_update ----+------+-------+------------- 1 | A031 | 320 | 2015-10-14 2 | C001 | 420 | 2013-03-08 3 | B021 | 280 | 2013-12-02 4 | Y158 | 690 | 2015-11-21 5 | A202 | 195 | 2019-02-23 6 | D022 | 540 | 2017-03-19 (6 rows)
SELECT INTO
查詢結果儲存至新資料表
一般在查詢資料庫時,都會根據指定條件查詢資料:
-- 查詢資料 SELECT id, name, price FROM products WHERE price BETWEEN 200 AND 400;
id | name | price ----+------+------- 1 | A031 | 320 3 | B021 | 280 (2 rows)
若要將這個查詢結果儲存至新的資料表當中,可以加上 INTO
並指定新資料表的名稱,這樣就可以自動建立一張新的資料表,並將查詢結果匯入其中:
-- 將查詢結果儲存至新資料表 SELECT id, name, price INTO new_table FROM products WHERE price BETWEEN 200 AND 400;
SELECT 2
執行成功之後,該新資料表中就會包含查詢結果的資料:
-- 顯示新資料表內容 SELECT * FROM new_table;
id | name | price ----+------+------- 1 | A031 | 320 3 | B021 | 280 (2 rows)
參考資料:PostgreSQL Tutorial