PostgreSQL 支持使用以下語句創建用戶定義的數據類型:
CREATE DOMAIN:它創建了一個用戶定義的數據類型,可以有可選的約束。CREATE TYPE:它通常用於使用存儲過程創建複合類型(兩種或多種數據類型混合的數據類型)。
創建域:
在 PostgreSQL 中,域是一種具有可選約束的數據類型。必須具有唯一名稱和 well-defined 架構範圍。
例:
首先,我們使用以下命令創建一個表(比如標記表):
CREATE TABLE marksheet (
student_id SERIAL PRIMARY KEY,
first_name VARCHAR NOT NULL,
last_name VARCHAR NOT NULL,
email VARCHAR NOT NULL,
marks_obtained INT NOT NULL,
CHECK (
first_name !~ '\s'
AND last_name !~ '\s'
)
);這個first_name和last_name 文件不為空且不得包含任何空格。為了教師的簡單,我們可以製作一個student_detail域使用以下命令:
CREATE DOMAIN contact_name AS
VARCHAR NOT NULL CHECK (value !~ '\s');現在我們可以使用student_detail作為數據類型first_name 和last_name字段如下:
CREATE TABLE marksheet (
student_id serial PRIMARY KEY,
first_name student_detail,
last_name student_detail,
marks_obtained student_detail,
email VARCHAR NOT NULL
);現在使用以下命令向表中插入一些數據:
INSERT INTO marksheet (first_name, last_name,marks_obtained, email)
VALUES
(
'Raju K',
'Singh',
95,
'rajukumar@gmail.com'
);在這個階段 PostgreSQL 將引發以下錯誤:
ERROR: value for domain marksheet violates check constraint "marksheet_check"

因此,行為與我們預期的一樣。要修改或刪除域,可以分別使用 ALTER DOMAIN 或 DROP DOMAIN。要獲取當前數據庫中的所有域,請使用以下命令:
\dD
輸出:
相關用法
- PostgreSQL CREATE TABLE用法及代碼示例
- PostgreSQL CREATE SEQUENCE用法及代碼示例
- PostgreSQL CREATE SCHEMA用法及代碼示例
- PostgreSQL CREATE PROCEDURE用法及代碼示例
- PostgreSQL CREATE TRIGGER用法及代碼示例
- PostgreSQL CREATE INDEX用法及代碼示例
- PostgreSQL CREATE ROLE用法及代碼示例
- PostgreSQL CREATE TABLESPACE用法及代碼示例
注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 PostgreSQL – CREATE DOMAIN。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
