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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。