【问题标题】:PostgreSQL How to put constraint on column of type arraysPostgreSQL如何对类型数组的列施加约束
【发布时间】:2017-12-06 09:43:10
【问题描述】:

我在 Postgresql 中有两个表。

table_1 包含来源

Sources
A_src 
B_src
C_src

table_2如下

Result;Result_sources
2.3; {A_src;C_src}
43; {B_src;C_src}
11; {A_src;B_src;C_src}

如何在 table_2.Result_sources 上编写一个约束,使其数组条目只能来自 table_1.Sources

【问题讨论】:

  • 我认为你需要触发它,你不能使用检查(其他表)或FK约束(不同的数据类型)

标签: arrays postgresql constraints


【解决方案1】:

您不能这样做,触发器也不能替代,因为除非您使用 SERIALIZABLE 事务,否则您无法避免竞争条件。

这个问题需要规范化:创建一个表,实现table_1table_2之间的m-to-n关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多