gpt4 book ai didi

sql - Postgres 中的代数数据类型

转载 作者:行者123 更新时间:2023-11-29 11:19:04 24 4
gpt4 key购买 nike

是否可以在 Postgres 中创建代数数据类型,然后将其用作列类型?

例如:

CREATE TYPE hoofed AS ENUM('horse', 'goat');

CREATE TYPE monkey AS ENUM('chimp','macaque');

CREATE TYPE ANIMAL AS ENUM(hoofed, monkey);

这失败了:

syntax error at or near "hoofed"
LINE 1: CREATE TYPE ANIMAL AS ENUM(hoofed, monkey);

有没有可能做这样的事情?

最终我希望能够做的是这样的事情:

CREATE TABLE zoo (
a ANIMAL,
name text
);

INSERT INTO zoo(a, name) VALUES('horse', 'bob');
INSERT INTO zoo(a, name) VALUES('macaque', 'jimmy');

并且两个记录都独立有效。

编辑:@Abihabi87 下面的回复确实允许我创建一个产品类型,但它仍然不允许我创建所需的联合类型。

最佳答案

您不能从其他枚举类型创建类型枚举:

你可以创造这样的动物:

CREATE TYPE ANIMAL AS (h hoofed,m monkey);

使用示例:

CREATE TABLE your_table
(
a ANIMAL
);

INSERT INTO your_table(a) select (select ('horse','macaque')::ANIMAL);

关于sql - Postgres 中的代数数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44431740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com