MySQL触发器是一种在数据库中自动执行的特殊类型的存储过程。它与表相关联,当表上的某些事件(如插入、更新或删除数据)发生时,触发器将自动执行相应的动作。
创建触发器
要创建一个触发器,首先需要使用CREATE TRIGGER语句。该语句的基本语法如下:
CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN -- trigger body END;
其中,trigger_name是触发器的名称,trigger_time指定触发器的触发时间(BEFORE或AFTER),trigger_event指定触发器的触发事件(INSERT、UPDATE或DELETE),table_name是要关联触发器的表名。
下面是一个示例,演示如何创建一个在插入新行之前自动更新另一张表的触发器:
CREATE TRIGGER update_status BEFORE INSERT ON orders FOR EACH ROW BEGIN UPDATE customers SET status = 'Active' WHERE customers.customer_id = NEW.customer_id; END;
在上述示例中,我们创建了一个名为update_status的触发器,它在插入新行之前自动更新customers表中的status字段。
触发器参数
当触发器执行时,可以使用NEW和OLD关键字来引用触发器的参数。
NEW关键字引用插入或更新操作中的新值,而OLD关键字引用更新或删除操作中的旧值。下面是一个示例:
CREATE TRIGGER calculate_total AFTER INSERT ON order_items FOR EACH ROW BEGIN UPDATE orders SET total = total + NEW.quantity * NEW.price WHERE orders.order_id = NEW.order_id; END;
在上述示例中,我们创建了一个名为calculate_total的触发器,它在插入新行之后自动更新orders表中的total字段,计算订单总价。
通过使用NEW关键字引用插入的新行的quantity和price字段,我们可以准确计算订单总价并更新total字段。
通过使用上述示例,我们可以看到MySQL触发器的基本使用方法和参数用法。希望本文对于小白编程人员学习和理解MySQL触发器有所帮助。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com