当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PostgreSQL CREATE DOMAIN用法及代码示例


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_namelast_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

输出:

相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – CREATE DOMAIN。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。