MySQL触发器是一种在数据库中自动执行的程序,通常是在数据表中引起数据变化(例如插入、更新或删除)时触发的。以下是MySQL触发器语法详解:
CREATE TRIGGER trigger_name
AFTER/BEFORE INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGIN
-- 触发程序的代码写在这里
END;
其中:
- trigger_name:指定触发器的名称。
- AFTER/BEFORE:指定触发器是在数据行插入、更新或删除之前还是之后调用。
- INSERT/UPDATE/DELETE:指定触发器在哪个操作时被调用。
- table_name:指定触发器被绑定到哪个表。
- FOR EACH ROW:指定对于每行数据执行一次触发器。
- BEGIN:触发器主体的开始标志。
- END:触发器主体的结束标志。
以下是一个示例:
CREATE TRIGGER products_update
AFTER UPDATE ON products
FOR EACH ROW
BEGIN
INSERT INTO products_audit
SET action = 'update',
product_id = OLD.product_id,
updated_at = NOW();
END;
上面的示例在每次更新products表时触发。它将产品的更新记录插入到products_audit表中。
总而言之,MySQL触发器在数据库中起着至关重要的作用,帮助我们自动执行程序和跟踪数据库的变化。