gpt4 book ai didi

database - 根据另一个属性创建具有一个属性的表

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:00 26 4
gpt4 key购买 nike

我刚开始学习 PostgreSQL,想创建一个复杂的表,但不知道如何去做。我想创建一个表,其中包含 namestart_dateend_date
结束日期应为 30 + start_date

最佳答案

通常,您不会冗余地存储功能相关的值。这只会使表膨胀,并且不如动态派生附加列可靠。

只需存储namestart_date。您可以创建一个 VIEW动态添加 end_date。或者只在需要的查询中使用表达式 start_date + 30 AS end_date

CREATE TABLE foo (
foo_id serial PRIMARY KEY -- add surrogate PK, names are rarely good for that
, foo text NOT NULL -- "name" is hardly ever a good name
, start_date date NOT NULL DEFAULT now()::date
);

CREATE VIEW foo_plus AS
SELECT *, start_date + 30 AS end_date
FROM foo
ORDER BY start_date; -- optional

在 Postgres 中你可以添加一个 integer to a date添加天数。

关于序列号:

如果依赖值的计算开销很大(不像这个简单的例子),考虑一个MATERIALIZED VIEW .

关于database - 根据另一个属性创建具有一个属性的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29112855/

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