繁体   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