gpt4 book ai didi

postgresql - postgres 中是否有任何独特的枚举数组类型?

转载 作者:行者123 更新时间:2023-11-29 12:16:37 26 4
gpt4 key购买 nike

假设有一个枚举days_of_the_week,其值从“Sunday”到“Saturday”。

现在,假设我们有一个包含列 company_namedays 的表,其中 days 是一个数组,表示公司活跃的日期。

在那种情况下,我们希望数组的值与枚举兼容,并且数组中的值是唯一的(例如,不允许一个值中有两个星期一)。

是否有任何数据类型可以处理所有这些并具有优化查找查询的好处?

最佳答案

以下可能不是您要查找的内容,但我认为没有办法在数组上添加唯一约束。反正我不喜欢用它们。

CREATE TYPE days_of_the_week as enum (
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);

CREATE TABLE company (
id SERIAL PRIMARY KEY NOT NULL,
company_name CHARACTER VARYING(1024) NOT NULL
);

CREATE TABLE company_active (
id_company integer NOT NULL REFERENCES company(id) ON DELETE CASCADE,
days days_of_the_week NOT NULL
);

ALTER TABLE company_active
ADD CONSTRAINT company_active_unique UNIQUE (id_company, days);

INSERT INTO company (company_name) VALUES ('test');

INSERT INTO company_active (id_company, days)
SELECT id, 'Monday'::days_of_the_week
FROM company;

INSERT INTO company_active (id_company, days)
SELECT id, 'Tuesday'::days_of_the_week
FROM company;

关于postgresql - postgres 中是否有任何独特的枚举数组类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50738807/

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