码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mysql触发器triggers


    文章目录

    • 1、创建触发器
    • 2、 查看触发器
    • 3、删除触发器


    在这里插入图片描述

    1、创建触发器

    语法:

    CREATE TRIGGER 触发器名称
    BEFORE/AFTER INSERT/UPDATE/DELETE
    ON 表名 FOR EACH ROW
    BEGIN
    SQL逻辑
    END;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    BEFORE 或 AFTER 表示之前 还是 之后触发
    INSERT 或 UPDATE 或 DELETE 表示监听 INSERT操作 还是 UPDATE操作 还是DELETE操作

    实例:

    CREATE TRIGGER user_insert_trigger
    AFTER INSERT ON user FOR EACH ROW
    BEGIN
    	INSERT INTO user_operation(operation_type, operation_content) values ('insert', CONCAT('添加后的数据:', new.name));
    END;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    为 user 表创建名为 user_insert_trigger 的触发器,触发器内容是当user表执行insert操作后,执行INSERT INTO user_operation(operation_type, operation_content) values (‘insert’, CONCAT(‘添加后的数据:’, new.name)); 这个sql语句,语句中可以通过new.的形式拿到insert 到 user表的数据

    这里除了new.外还有old.

    new.表示新的数据;old. 表示原来的数据

    2、 查看触发器

    show TRIGGERS;
    
    • 1

    3、删除触发器

    DROP TRIGGER 触发器名称
    
    • 1

    测试数据:

    创建2张表,一张user表,一张user_operation表,然后为user表创建触发器,当user表有数据变化时,向 user_operation 表记录操作

    user

    CREATE TABLE `user`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `age` int(11) NULL DEFAULT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    user_operation

    CREATE TABLE `user_operation`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `operation_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `operation_content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    创建触发器
    添加insert类型)

    CREATE TRIGGER user_insert_trigger
    AFTER INSERT ON user FOR EACH ROW
    BEGIN
    	INSERT INTO user_operation(operation_type, operation_content) values ('insert', CONCAT('添加后的数据:', new.name));
    END;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    use表添加数据测:

    INSERT INTO user(name, age) VALUES('叶绿思雨', 17);
    
    • 1

    在这里插入图片描述
    user_operation表中查看insert操作的触发器生成的数据:
    在这里插入图片描述
    查到相应的数据已经生成,说明insert类型的触发器正常被触发

    MYSQL文章推荐:
    MYSQL视图:
    mysql存储

    在这里插入图片描述

  • 相关阅读:
    NiFi中缓存组件的运行机制及增删改缓存数据
    Java课程设计:基于swing的贪吃蛇小游戏
    弹性数据库连接池探活策略调研(一)——HikariCP
    AI与边缘设备,光子芯片,AI规划能力,自然语言驱动的AI游戏
    文举论金:非农到来!黄金原油全面走势分析策略独家指导
    10kV变电所运维平台的现代化智能构建方案
    java 中集合与数组的相互转换
    线性代数复习CH1:行列式
    Proxmox虚拟环境搭建
    2.2_3&2.2_4调度器和闲逛进程、调度算法的评价指标
  • 原文地址:https://blog.csdn.net/m0_67929156/article/details/133083433
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号