MySQL触发器可以在满足某些事件时自动执行SQL语句。其中一个非常有用的场景就是在一个表更新时,自动更新该表中的某些字段。以下是一个示例触发器代码:
DELIMITER $$ CREATE TRIGGER tr_example AFTER UPDATE ON my_table FOR EACH ROW BEGIN IF NEW.field1<>OLD.field1 THEN UPDATE my_table SET field2 = NEW.field2 + 1 WHERE id = NEW.id; END IF; END$$ DELIMITER ;
以上代码创建了一个名为“tr_example”的触发器,它会在“my_table”表中的任何行更新时自动执行。该触发器的实际功能是,如果“field1”字段的值被更改,则将“field2”字段的值增加1。
注意,在以上示例中,我们使用了“IF”语句来检查“field1”字段的值是否被更改。这是因为该触发器会在每个更新事件中执行,而我们只想在“field1”值更改时更新“field2”。
最后,我们使用“DELIMITER”命令来更改MySQL默认的SQL语句分隔符,以便我们可以在触发器代码中使用分号。该命令的作用是告诉MySQL,我们将使用“$$”作为语句分隔符,而不是默认的分号“;”。