介紹如何在 PostgreSQL 資料庫中修改資料表的欄位類型。
首先建立示範用的資料表,並插入一些測試的資料:
-- 建立資料表 CREATE TABLE my_table ( id serial PRIMARY KEY, number varchar(10) ); -- 插入資料 INSERT INTO my_table (number) VALUES ('0102'), ('3029'), ('3921');
查看原始的資料:
-- 查看資料 SELECT * FROM my_table;
id | number ----+-------- 1 | 0102 2 | 3029 3 | 3921 (3 rows)
這裡的 number
欄位原來的資料型態是字串(varchar
),若要將 number
欄位改為整數(INT
),可以使用 ALTER TABLE
指令:
-- 更改欄位資料類型 ALTER TABLE my_table ALTER COLUMN number TYPE INT USING number::integer;
在更改資料型態時,除了以 TYPE
指定新的資料型態之外,還要加上 USING
來指定舊資料轉換的方式,這裡我們指定轉換的方式就是將原來的 number
資料直接轉換為整數(number::integer
)。
接著檢查更改資料型態之後的資料表:
-- 查看資料表 \d my_table
Table "public.my_table" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+-------------------------------------- id | integer | | not null | nextval('my_table_id_seq'::regclass) number | integer | | | Indexes: "my_table_pkey" PRIMARY KEY, btree (id)
number
已經確實改為 integer
型態了。接著查看轉換之後的資料:
-- 查看資料 SELECT * FROM my_table;
id | number ----+-------- 1 | 102 2 | 3029 3 | 3921 (3 rows)
參考資料:PostgreSQL Tutorial