gpt4 book ai didi

postgresql - 如果字段为 True,Postgres 检查相关表是否有条目

转载 作者:行者123 更新时间:2023-11-29 12:07:48 24 4
gpt4 key购买 nike

我有一个包含 bool 列 automated 的表。当该字段设置为 TRUE 时,另一个表需要有一个条目引用该行。

表A

     id    |   automated
---------------------
1 | False
2 | True
3 | False

表B

     id    |  FK-TableA   |  Value
-------------------------------
2 | 2 | X

因此,无论何时将新条目插入到表 A 中,其中 automated 设置为 TRUE,那么表 B 中也必须插入(或存在)一行并引用它。

最佳答案

这对我来说似乎是一个不自然的流程,你说的自然流程应该是在表 B 上创建一个 TRIGGER ,每当插入一个新的表 B 记录时,它就会在表 A 上插入一条记录.

但我知道这是对一个更复杂问题的简化,所以如果你真的需要创建这种程序,还有一个问题需要回答,当检查是否定的时候会发生什么,是否应该有一个异常(exception)?是否应使用 FALSE 而不是 TRUE 插入记录,是否需要忽略该记录?从我的角度来看,有两种选择:

  1. 在表 A 上的 INSERT 之前创建一个 TRIGGER 以相应地更新表(创建一个 PROCEDURE 检查它是否存在和一个 TRIGGER 执行此过程)
  2. 在插入表 A 时创建一个 RULE,检查记录是否存在于表 B 上并更改记录或不执行任何操作。

有了更多的背景知识,我可以帮助您使用触发器/规则。

无论如何,如果这个表有很多 INSERT,请考虑到这在性能方面可能是一个真正的错误,您应该进行一些离线(因为没有在实时 INSERT 上完成)过程而不是在实时 INSERT 上执行

关于postgresql - 如果字段为 True,Postgres 检查相关表是否有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52776872/

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