簡體   English   中英

如何在Postgresql數據庫中創建具有一列枚舉數據類型的表?

[英]How can i create a table with one column of enum datatype in postgresql database?

如何在PostgreSQL數據庫中創建具有一列enum數據類型的表?

表名: Employee

列:

ID: Integer

Name: ENUM

下面是查詢,但不確定是否正確。

CREATE TYPE Name AS ENUM();

CREATE TABLE IF NOT EXISTS Employee(
    ID integer NOT NULL,
    Name DEFAULT NULL,
    CONSTRAINT "Employee_pkey" PRIMARY KEY (id)
 );

有人可以幫忙嗎?

在這里,您有一個簡單的示例,考慮在Employee Table的enum列中添加一個名稱,並在enum中添加一些值。

 CREATE TYPE NameEnum AS ENUM('Jony','Bala','Mark');

 CREATE TABLE IF NOT EXISTS Employee(
    ID integer NOT NULL,
    name NameEnum DEFAULT NULL,
    CONSTRAINT "Employee_pkey" PRIMARY KEY (id)
 );

 Insert into Employee(ID,name)
 Values(1,  (SELECT enum_first(NULL::NameEnum)))

 Select * from Employee
 Output:

數據輸出

1.在行中

Name DEFAULT NULL,

您要么忘記了列名,要么將列定義為枚舉類型:

myname Name DEFAULT NULL, -- add column name

要么

Name Name DEFAULT NULL, -- add enum type


2.因為“名稱”是Postgres中的關鍵字,所以您還必須更改類型名稱。 否則它將無法正常工作。


3.但是:您的枚舉類型沒有值。 因此,您將無法插入任何值。 您必須添加一些枚舉值:

 CREATE TYPE name_type AS ENUM('name1', 'name2'); 


最后:

 CREATE TYPE name_type AS ENUM('name1', 'name2'); CREATE TABLE Employee2( ID integer, myname name_type ); 

演示:db <> fiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM