Mysql触发器语法
时间: 2023-09-21 12:02:45 浏览: 111
MySQL触发器是一种在特定事件发生时自动执行的数据库对象。下面是MySQL触发器的基本语法:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
BEGIN
-- 触发器执行的SQL语句
END;
其中,trigger_name 是触发器的名称,可以根据实际需求自定义。BEFORE 或 AFTER 关键字指定触发器是在事件之前还是之后执行。INSERT、UPDATE 和 DELETE 是触发器要监听的事件类型。table_name 是触发器所属的表名。
FOR EACH ROW 关键字表示每次执行触发器时都会针对触发事件中的每一行执行相应的操作。
在 BEGIN 和 END 之间,可以编写触发器要执行的SQL语句,可以包含条件判断、更新数据等操作。
例如,下面是一个创建在表 `orders` 上的 `AFTER INSERT` 触发器的示例:
CREATE TRIGGER after_order_insert
AFTER INSERT
ON orders
FOR EACH ROW
BEGIN
-- 触发器执行的SQL语句
INSERT INTO order_logs(order_id, log_message)
VALUES(NEW.order_id, 'New order created');
END;
该触发器会在 `orders` 表上进行插入操作后执行,每次插入一条新的订单记录时,会将相应的订单日志插入到 `order_logs` 表中。
请注意上述示例中使用了 `NEW.order_id` 来引用插入的新行的 `order_id` 值。`NEW` 是一个特殊的关键字,代表了触发器所关联的事件中的新增行。
以上是MySQL触发器的基本语法,根据实际需求,你可以根据不同的事件和操作编写相应的触发器逻辑。
阅读全文