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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
