當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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