MySQL触发器是数据库中的一种对象,它与表相关,当表发生特定事件(如插入、更新或删除操作)时,触发器会自动执行预定义的操作。触发器可以用于多种用途,例如保证数据的完整性、记录日志、数据校验等。
触发器类似于编程语言中的函数,其执行不是由程序调用,也不是由手工启动,而是由事件触发、激活从而实现执行。当表发生某事件时,如插入、删除或更新记录,触发器会自动执行定义好的SQL语句。
创建MySQL触发器的语法如下:
sql复制代码CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN -- SQL语句 END;
其中:
trigger_name
是触发器的名称。trigger_time
表示触发器的时间,可以是BEFORE
或AFTER
。trigger_event
表示触发器的触发事件,可以是INSERT
、UPDATE
或DELETE
。table_name
是触发器所关联的表名。
例如,创建一个在插入操作前自动记录到日志表的触发器:
sql复制代码CREATE TRIGGER log_insert_trigger BEFORE INSERT ON table1FOR EACH ROW BEGIN INSERT INTO log_table (column1, column2) VALUES (NEW.column1, NEW.column2);END;
在这个例子中,每当向table1
插入新记录时,触发器会先执行,然后执行插入操作。NEW.column1
和NEW.column2
引用了触发器中正在插入的记录的内容。