gpt4 book ai didi

postgresql - 如何为数据类型为 'timestamptz' 的 PostgreSQL 列设置 NULL 值?

转载 作者:行者123 更新时间:2023-12-04 10:46:30 24 4
gpt4 key购买 nike

我想创建两个数据类型为“timestamptz”的列。

第一列的名称是 created并反射(reflect)将项目添加到表中的日期:

created timestamptz NOT NULL DEFAULT now()

现在问题来了,我需要一个新列来反射(reflect)项目何时被修改(更改),但有可能某些文章永远不会被更改,因此该列需要以 NULL timestamptz 值或其他值开头。
modified timestamptz NOT NULL DEFAULT ...

我检查了 Wordpress 数据库作为灵感,看看他们如何处理这个问题。 Wordpress 使用 mySQL。我注意到他们添加了值为 0000-00-00 00:00:00 的日期时间类型为他们的 post_modified这允许他们对列使用 NOT NULL 定义。

有没有办法在 PostgreSQL 中做类似的事情?还是删除 NOT NULL 并允许 modified 更好的做法列保持为空,直到项目被修改?

最佳答案

Or is it better practice to remove NOT NULL and allow the modified column to stay empty until the item gets modified



这是正确的方法(至少在我看来)。

Postgres 不允许您存储无效的日期或时间戳值( 0000-00-00 00:00:00 是)

如果你想要一些遥远过去的值(value),让你不需要关心 null值和与“当前”值的比较按预期工作,您可以使用无穷大:
modified timestamptz NOT NULL DEFAULT '-infinity'

但我会选择 NULL表示该行未更改的值

关于postgresql - 如何为数据类型为 'timestamptz' 的 PostgreSQL 列设置 NULL 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59681495/

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