gpt4 book ai didi

PostgreSQL 复制具有两列重复的行

转载 作者:行者123 更新时间:2023-11-29 13:20:25 27 4
gpt4 key购买 nike

在 PostgreSQL 中,我正在寻找以下问题的答案。有两列提供有关“开始”和“结束”的数据,以及一个“日期”列。目前日期列只存在一次,“开始”和“结束”充满了可能性。

我正在寻找创建具有唯一值但具有重复日期的“开始”和“结束”列的可能性。

当前:

id  date          start    end
1 2017-03-13 a [null]
2 2017-03-14 [null] a
3 2017-03-14 b [null]
4 2017-03-16 [null] b
5 2017-03-16 c c

希望:

id  date          start    end
1 2017-03-13 a [null]
2 2017-03-14 [null] a
3 2017-03-14 b [null]
4 2017-03-16 [null] b
5 2017-03-16 c [null]
6 2017-03-16 [null] c

有什么想法吗?

最佳答案

如果我正确理解了你的问题,并且你想要设置 start"end" 之一,并与 date 组合> 独一无二,你可以这样做:

ALTER TABLE tab
ADD CHECK(start IS NULL AND "end" IS NOT NULL
OR start IS NOT NULL AND "end" IS NULL);

CREATE UNIQUE INDEX ON tab (date, COALESCE(start, "end"));

关于PostgreSQL 复制具有两列重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42807168/

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