创建TRIGGER以监视特定的表行

时间:2017-04-13 12:56:35

标签: mysql sql informix

我有两张桌子和一张桌子。需要为这种情况写一个TRIGGER。

1. Parameters_Table(int pkid,string param_name,string param_value)
2. Tokens_Table(int pkid,字符串项,字符串有效性)

如果Parameters_Table中param_name ='Enterprise'的特定行更改其'param_value',我需要删除Tokens_Table中的所有条目。该值已从UI更改。例如,行< 7,enterprise,60>更改为< 7,enterprise,25>在Parameters_Table中,然后从Tokens_Table中删除所有条目。

我应该如何编写触发器。请指导。 (我需要为Informix数据库编写这个,但是mysql查询也会有帮助)

2 个答案:

答案 0 :(得分:1)

DELIMITER $$
CREATE TRIGGER after_update AFTER UPDATE ON Parameters_Table
FOR EACH ROW
BEGIN
  IF OLD.param_name ='Enterprise' THEN
    IF NEW.param_value != OLD.param_value THEN
      DELETE FROM Tokens_Table WHERE pkid = NEW.pkid;
    END IF;
  END IF;
END$$

试试上面的代码。希望这会有所帮助。

答案 1 :(得分:-1)

您可以尝试以下语法/格式:

DELIMITER $$
CREATE TRIGGER delete_tokens AFTER INSERT ON Parameters_Table
FOR EACH ROW 
BEGIN
  IF NEW.param_name = 'enterprise' THEN 
    BEGIN
        DELETE FROM Tokens_Table WHERE pkid = NEW.pkid;
    END; 
  END IF;
END$$