我想创建一个触发器,如果该条目也出现在另一个表中,它将阻止对该表的行进行更新。
例子
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)
并在这种情况下抛出异常。
关于sql - 触发器以防止在 postgresql 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44718347/