在postgresql中防止更新的触发器

在postgresql中防止更新的触发器,sql,postgresql,triggers,cascade,Sql,Postgresql,Triggers,Cascade,我想创建一个触发器,如果该条目也存在于另一个表中,它将阻止该表中某一行的更新 范例 Table M m_id title 1 abc 2 def 3 ghi Table N n_id m_id 1 2 2 3 因此,如果试图更新表m中的值2或3,则不应允许这样做 然而,如果我试图从表中更新值1,它应该会这样做。在更新m之前,您必须为每一行创建一个触发器,检查OLD.m_id NEW.m_id是否存在,并从n中选择1,其中

我想创建一个触发器,如果该条目也存在于另一个表中,它将阻止该表中某一行的更新

范例

Table M
m_id   title  
1       abc
2       def
3       ghi

Table N
n_id   m_id
1       2
2       3
因此,如果试图更新表m中的值2或3,则不应允许这样做
然而,如果我试图从表中更新值1,它应该会这样做。

在更新m之前,您必须为每一行创建一个触发器,检查OLD.m_id NEW.m_id是否存在,并从n中选择1,其中n.m_id=OLD.m_id,并在这种情况下抛出一个异常。

很抱歉,我的回复太晚了,但我已经有一个外键约束,我想要的是如果尝试更新表N中表M中的条目,但不允许我这样做。如果可能,您能给出最终查询吗?