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