触发器以防止在 postgresql 中更新
Trigger to prevent update in postgresql
我想创建一个触发器,如果该条目也出现在另一个 table 中,它将阻止从该 table 连续更新。
示例
Table M
m_id title
1 abc
2 def
3 ghi
Table N
n_id m_id
1 2
2 3
因此,如果尝试更新 table 中的值 2 或 3,则不应允许这样做
而如果我尝试从 table 更新值 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)
并在这种情况下抛出异常。
我想创建一个触发器,如果该条目也出现在另一个 table 中,它将阻止从该 table 连续更新。
示例
Table M
m_id title
1 abc
2 def
3 ghi
Table N
n_id m_id
1 2
2 3
因此,如果尝试更新 table 中的值 2 或 3,则不应允许这样做 而如果我尝试从 table 更新值 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)
并在这种情况下抛出异常。