当前位置: 首页 > wzjs >正文

中国建设监理协会网站继续教育南京城乡建设网站

中国建设监理协会网站继续教育,南京城乡建设网站,上海云站网络技术服务中心,站长统计app下载大全目录 一、基本概述二、语法结构三、基本使用3.1 新增的触发器3.2 修改的触发器3.3 删除的触发器 一、基本概述 触发器是与表有关的数据对象,在INSERT/UPDATE/DELETE之前或者是之后,触发并执行触发器中定义的SQL语句的集合,触发器的这种特性可…

目录

    • 一、基本概述
    • 二、语法结构
    • 三、基本使用
      • 3.1 新增的触发器
      • 3.2 修改的触发器
      • 3.3 删除的触发器


一、基本概述

触发器是与表有关的数据对象,在INSERT/UPDATE/DELETE之前或者是之后,触发并执行触发器中定义的SQL语句的集合,触发器的这种特性可以在协助应用在数据库端确保数据的完整性,日志记录,数据校验等操纵。
使用别名OLD和NEW来引用触发器中发生变化的记录内容,现在的触发器只支持行级触发,不支持语句触发

  • 行级触发:每关联一行数据都会触发。
  • 语句触发:在执行这条语句时只触发一次。

二、语法结构

创建触发器

CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name FOR EACH ROW --- 行级触发器
BEGIN...
END;

查看触发器

SHOW TRIGGERS;

删除触发器

DROP TRIGGER 数据库名.触发器名

三、基本使用

通过触发器记录用户表的变动

创建用户表

CREATE TABLE `tb_user`  (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`score` decimal(10, 2) NULL DEFAULT NULL,`rq` date NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

创建用户日志表

CREATE TABLE `user_log`  (`id` int NOT NULL AUTO_INCREMENT,`operation` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作类型 insert/update/delete',`operation_time` datetime NOT NULL COMMENT '操作时间',`operation_id` int NOT NULL COMMENT '操作ID',`operation_params` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作参数',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

3.1 新增的触发器

编写触发器

CREATE TRIGGER tb_user_insert_trigger AFTER INSERT ON tb_user FOR EACH ROW
BEGININSERT INTO user_log(operation, operation_time, operation_id, operation_params) VALUES ('insert', NOW(), new.id, CONCAT('插入的数据内容为id=', new.id, 'name=', new.name, 'age=',new.age,'sex=',new.sex,'score=',new.score,'rq=',new.rq));
END;

向用户表中插入数据,查看是否已经插入日志数据

INSERT INTO tb_user(name, age, sex, score, rq) VALUES ('测试触发器', 100, 1, 999999, NOW());

3.2 修改的触发器

编写触发器

CREATE TRIGGER tb_user_update_trigger AFTER UPDATE ON tb_user FOR EACH ROW
BEGININSERT INTO user_log(operation, operation_time, operation_id, operation_params) VALUES ('update', NOW(), new.id, CONCAT('更新之前的数据为id=', old.id, 'name=', old.name, 'age=',old.age,'sex=',old.sex,'score=',old.score,'rq=',old.rq,'更新之后的数据为id=', new.id, 'name=', new.name, 'age=',new.age,'sex=',new.sex,'score=',new.score,'rq=',new.rq));
END;

修改用户数据,查看是否已经插入日志数据

UPDATE tb_user SET age=2000 WHERE id=7;

3.3 删除的触发器

编写触发器

CREATE TRIGGER tb_user_delete_trigger AFTER DELETE ON tb_user FOR EACH ROW
BEGININSERT INTO user_log(operation, operation_time, operation_id, operation_params) VALUES ('delete', NOW(), new.id, CONCAT('删除之前的数据内容为id=', old.id, 'name=', old.name, 'age=',old.age,'sex=',old.sex,'score=',old.score,'rq=',old.rq));
END;

删除用户数据,查看是否已经插入日志数据

DELETE FROM tb_user WHERE id='7';
http://www.dtcms.com/wzjs/826219.html

相关文章:

  • 网站运维工作内容门户网站建设招标文件
  • 沈阳做网站推广免费一天赚500元游戏
  • 公司网站首页设计构想衡水网站设计怎么做
  • 同一ip大量访问网站网站设计书籍
  • 一个网站做app手机搭建wordpress
  • 郑州高端网站建设公司黑龙江省建设教育网站
  • 重庆企业网站开发2013一汽大众企业网站车主俱乐部建设维护方案
  • 网站建设售后质量保证上海公司新能源过户个人
  • 杭州 网站建设襄樊市网站建设
  • 广东企业网站建设哪家好在西部数码做的企业网站不能与阿里巴巴网站相连接
  • 网站设计岗位做哪些事情网站升级方案
  • wordpress 链接 跳转苏州seo关键词优化外包
  • 营销网站建设模板广州企业所得税怎么征收
  • 石台做网站asp.net+网站开发+实战
  • 网站建设费用大全求职网站排名
  • 怎么做属于自己的网站设计平台化
  • 什么网站是免费的镇海建设交通局网站首页
  • 天津做网站哪家好263企业邮箱账号格式
  • 商城网站规划利用jsp做网站
  • 网站开发到上线的过程上海鸿鹄设计公司
  • 视觉网络网站营销型网站架构师
  • 宾馆做网站客户资源网
  • android 网站模板wordpress彩色文章标签
  • 任县网站建设价格信息ps制作网页主页效果图
  • 网站站群建设方案梁山网站建设
  • 长沙望城建设局网站肇庆网站建设制作
  • 怎么用腾讯云主机建设网站长沙排名推广
  • 登录浏览器是建设银行移动门户网站漯河网站建设公司
  • 专门做分析图的网站asp网站开发实验总结
  • 黄金网站app大全3dm手游哪里能给人做网站