[入門] PostgreSQL 自動產生 GUID

由於近期需要處理 PostgreSQL 的 Table 自動產生 GUID, 但對 PostgreSQL 不熟的我只能花時間研究如何自動產生 GUID。

本文將紀錄 PostgreSQL Table 如何自動產生 GUID。

測試情境

嘗試建立一個 Table 紀錄人名, Email 與唯一性 ID。 我使用 Table 自動產生 GUID Data Type買的 ID, 如下:

正文

首先我們建立一個名為 Test 的 Table 進行測試。 擔心重複我們可使用以下 SQL Query 確認 Table 是否存在:

SELECT EXISTS (SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'Test');

若不存在可得:

確認不存在後, 我們使用以下語法進行建立:

CREATE TABLE IF NOT EXISTS public."Test" (
	ID UUID PRIMARY KEY DEFAULT gen_random_uuid(),
	Name varchar(50),
	Email varchar(100)
);

語法說明:

  • IF NOT EXISTS 為確認不存在時進行建立;
  • UUID 為 PostgreSQL 內的 GUID 代名詞;
  • DEFAULT 為預設建立;
  • gen_random_uuid() 為預設建立時使用 random 產生 GUID;

建立完成後我們可使用一次檢查 Table 語法, 若存在可得:

完成後我們使用語法塞入資料:

INSERT INTO public."Test" (Name, Email) VALUES 
('A', 'A@test.com'),
('B', 'B@test.com'),
('C', 'C@test.com'),
('D', 'D@test.com'),
('E', 'E@test.com');

然後使用 SELECT 查詢可看到資料前方已自動產生 GUID:

SELECT * FROM public."Test";

以上即為 PostgreSQL 自動產生 GUID 的方法。

完成測試後我們只要使用以下語法即可刪除測試的 Table:

DROP TABLE public."Test";

結語

自動產生 GUID 是為了方便我們協助原本沒有 ID 的資料在匯入資料至 DB 時, 資料可得到一組唯一性的 ID 以便我們可準確地處理某筆異動資料或資料相同時也可使用 ID 進行區分。

 

以上內容為我個人的見解, 並感謝您的閱讀, 謝謝

分級: 入門是認識, 基本是運用, 進階是混合結合
範本是已可下載或可使用的範例, 至於教程當然是學習的結晶