0
我想创建一个触发器,它会阻止更新在从表中的一行,如果该条目出现在另一个表了。触发以防止更新PostgreSQL中
例如
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它应该这样做。
我想创建一个触发器,它会阻止更新在从表中的一行,如果该条目出现在另一个表了。触发以防止更新PostgreSQL中
例如
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它应该这样做。
你必须创建一个触发器BEFORE UPDATE ON m FOR EACH ROW
,检查IF OLD.m_id <> NEW.m_id AND EXISTS (SELECT 1 FROM n WHERE n.m_id = OLD.m_id)
并引发在这种情况下的例外。
对不起已故的答复,但我已经有我想要的外键约束是,如果我尝试更新从表M中的条目这是目前在表N,则应该不允许我这样做。 –
你能给如果可能的最终查询? –
我做到了。写了最后的触发功能是平凡的,并作为练习留给读者。 –