zoukankan      html  css  js  c++  java
  • MySQL基础(7) | 触发器

    MySQL基础(7) | 触发器


    基本语法

    1. 创建
    CREATE TRIGGER trigger_name trigger_time trigger_event
     ON table_name
     FOR EACH ROW
     BEGIN
     ...
     END;
    
    
    • 将触发器名称放在CREATE TRIGGER语句之后。触发器名称应遵循命名约定[trigger time]_[table name]_[trigger event],例如before_employees_update。

    • 触发激活时间可以在之前或之后。必须指定定义触发器的激活时间。如果要在更改之前处理操作,则使用BEFORE关键字,如果在更改后需要处理操作,则使用AFTER关键字。

    • 触发事件可以是INSERTUPDATEDELETE。此事件导致触发器被调用。 触发器只能由一个事件调用。要定义由多个事件调用的触发器,必须定义多个触发器,每个事件一个触发器。

    • 触发器必须与特定表关联。没有表触发器将不存在,所以必须在ON关键字之后指定表名。

    • 将SQL语句放在BEGINEND块之间。这是定义触发器逻辑的位置。

    示例:

    DELIMITER $$
    CREATE
        TRIGGER `remaining_BeforeInsert` BEFORE INSERT ON `user`
        FOR EACH ROW BEGIN
        IF NEW.remaining > 100 THEN  
            SET NEW.remaining = 100;  
        END IF;  
        END$$
    DELIMITER ;
    

    请注意,

    INSERT定义的触发器中,可以仅使用NEW关键字。不能使用OLD关键字。

    DELETE定义的触发器中,没有新行,因此您只能使用OLD关键字。

    UPDATE触发器中,OLD是指更新前的行,而NEW是更新后的行。

    1. 查看所有触发器

    看当前数据库中的所有触发器,请使用SHOW TRIGGERS语句,

    SHOW TRIGGERS;
    

    参考:https://www.yiibai.com/mysql/create-the-first-trigger-in-mysql.html

  • 相关阅读:
    学习笔记10.28
    学习目标
    ajax传值修改数据
    php 4种传值方式
    01-17权限管理
    01-16作业:文件管理
    01-15文件操作
    01-12文件上传
    1-6 号 详情
    ajax登陆提示
  • 原文地址:https://www.cnblogs.com/iwsx/p/12348990.html
Copyright © 2011-2022 走看看