【问题标题】:How to make foreign key on postgres system catalog tables/views?如何在 postgres 系统目录表/视图上创建外键?
【发布时间】:2020-05-25 13:26:12
【问题描述】:

在我们的一张表中,我们有以下列:

id, date, name, timezone(string)

我们如何确保时区只能是pg_timezone_names 表中的一个? 我们如何为此创建外键?

【问题讨论】:

  • 问题是“table”真的是一个视图。视图由表值函数定义。三个选项: (1) 使用触发器。 (2) 创建您自己的表版本以用于外键关系。 (3) 使用用户自定义函数和检查约束。

标签: sql database postgresql database-design


【解决方案1】:

这不是我通常推荐的,但您可以使用check 约束来返回错误而不是 true 或 false:

 check (timezone( timezone, '2000-01-01'::timestamp) is not null)

Here 就是一个例子。

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 2019-06-06
    • 2021-09-20
    • 2020-06-13
    • 2016-11-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多