仅存在单个特定关系时删除行

时间:2017-06-11 20:39:33

标签: sql postgresql postgresql-9.6

我的表格t.decode("utf-8") 包含personuid。我还有一个表email,我存储了父母关系。它有parent_childparent_uid,它们都是child_uiduid的必需引用。

当我删除person时,我想删除所有孩子,只要:

  1. 孩子没有电子邮件集。由于我在其他地方使用此字段,我只是为此检查@符号。
  2. 孩子没有其他父母。
  3. 现在我试图通过person触发器尝试这样做,但我觉得这不是处理此问题的最有效方法。

    BEFORE DELETE ON person

1 个答案:

答案 0 :(得分:0)

没有比触发器更好的方法。

您可以为person(uid)parent(parent_uid)parent_child(child_uid)编制索引以提高效率(后面的索引之一应该是不必要的,因为您在{{1}上有一个主键约束}和parent_uid)。