mysql 触发器

阿里云服务器

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 表示触发器的时间,可以是BEFOREAFTER

  • trigger_event 表示触发器的触发事件,可以是INSERTUPDATEDELETE

  • 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.column1NEW.column2引用了触发器中正在插入的记录的内容。