首页 > 数据库 >Mysql阶段三总结

Mysql阶段三总结

时间:2024-06-07 19:58:02浏览次数:30  
标签:总结 语句 触发器 触发 mysql trigger 阶段 Mysql 事件

Mysql阶段三总结

触电器

触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。MySQL从5.0.2版本开始支持触发器。

*创建触发器*

在MySQL中创建触发器通过SQL语句CREATE TRIGGER来实现,其语法形式如下:

​ CREATE trigger trigger_name BEFORE|AFTER trigger_EVENT

​ ON TABLE_NAME FOR EACH ROW trigger_STMT

在上述语句中,参数trigger_name表示要创建的触发器名;

参数BEFORE和AFTER指定了触发器执行的时间,前者在触发器事件之前执行触发器语句,后者在触发器事件之后执行触发器语句;

参数trigger_EVENT表示触发事件,即触发器执行条件,包含DELETE、INSERT和UPDATE语句;参数TABLE_NAME表示触发事件的操作表名;参数FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器;

参数trigger_STMT表示激活触发器后被执行的语句。执行语句中如果要引用更新记录中的字段,对于INSERT语句,只有NEW是合法的,表示当前已插入的记录;对于DELETE语句,只有OLD才合法,表示当前删除的记录;而UPDATE语句可以和NEW(更新后)以及OLD(更新前)同时使用。

****注意:****不能创建具有相同名字的触发器。另外,对于具有相同触发程序动作时间和事件的给定表,不能有两个触发器。因此,对于有经验的用户,在创建触发器之前,需要查看MySQL中是否已经存在该标识符的触发器和触发器的相关事件。

以下为2种用法的演示

mysql> create database school;
Query OK, 1 row affected (0.01 sec)
mysql> use school;
Database changed
mysql>  CREATE TABLE class (
    ->   `id` int NOT NULL AUTO_INCREMENT,
    ->   `name` varchar(128) DEFAULT NULL,
    ->   `teacher` varchar(64) DEFAULT NULL,
    ->   `count`  int DEFAULT 0,
    ->   UNIQUE KEY `id` (`id`)
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> insert into class values(1,'无敌一班','Jack',0),(2,'无敌二班','Killy',0),(3,'无敌三班','Tom',0),(4,'无敌四

标签:总结,语句,触发器,触发,mysql,trigger,阶段,Mysql,事件
From: https://blog.csdn.net/2301_79638183/article/details/139534210

相关文章

  • 第二次blog总结
    目录一.前言二.设计与分析:三.踩坑心得四.改进建议五.总结一.前言第四次大作业:1.题量:这次的大作业有三道题,题量较少。2.难度:第四次大作业的核心题目答题判题程序-4是经过了三次对第一次答题判题程序为基础的迭代而成,难度毋庸置疑,而且因为第一次总结,这次大作业距离上一次大作业也......
  • Mysql阶段二总结
    Mysql阶段二总结文章目录Mysql阶段二总结左外连接右外连接合并查询数据纪录子查询当我们在查询数据时,要求返回所操作表中至少一个表的所有数据记录,通过SQL语句“OUTERJOIN…ON”来实现。外连接数据查询语法形式如下:SELECTfield1,field2,…,fieldnFRO......
  • Mysql 8.4.0 结合 Docker 搭建GTID主从复制,以及传统主从复制
    注意:本教程不适用旧版本,Mysql8.4.0和旧版本,主从复制相关命令有所变化,具体区别请看文末参考软件版本Docker:26.1.3Mysql:8.4.0 GTID主从复制1.准备主从两台服务器2.两台服务器分别创建DockerCompose文件services:mysql:image:mysql:8.4.0ports:-"3......
  • linux安装mysql8并配置主从
    服务器10.213.3.68DBmaser10.213.3.69DBslave都安装mysql8安装包,解压mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz[root@DB-mastermysql8]#lsbindocsincludelibLICENSEmanREADMEsharesupport-files优化过的配置文件[mysqld]server-id=1log-bin=mys......
  • Mysql基础进阶速成2
    看着篇文章之前先看我的前一章:MySQL基础进阶速成1函数:每个字段使用一个函数:select+函数(字段名)+from+表名upper:将字符串中的字母大写lower:将字符串中的字符小写max:得到最大值min:得到最小值count:计数avg:平均数length:获取字符串长度........selectupper(name)fro......
  • MySQL随笔
    1、隔离级别innoDB通过间隙锁锁定查询范围避免被其他事物修改未提交读(导致脏读)、已提交读(导致不可重复读)、可重复读(mysql默认,导致幻读)、串行化 脏读:事物执行的过程读到其他事物未提交的数据不可重复读:事物a在多次读取某数据时,事物b进行了修改,导致食物a两......
  • [设计模式 1] 设计模式笔记(大话设计模式总结)
    设计模式总结(java版1)1.简单工厂模式需求:设计一个计算器,有一个抽象的运算类,他里边有两个数字属性和一个getResult()抽象方法,这个类被四个加减乘除的具体的算法类继承,然后有一个简单工厂类,这个简称工厂类是用来生成一个具体的运算类的,然后就在简单工厂类里有一个逻辑的判......
  • mysql8 无法连接navicat问题
    1、修改MySQL的配置文件(my.cnf或者my.ini),在[mysqld]部分添加或者修改default_authentication_plugin=mysql_native_password。重启mysql服务2、创建或修改用户并设置密码:如果您还没有 root 用户从任何主机连接的权限,您需要首先以具有足够权限的用户(通常是本地 root 用户)登录......
  • MySQL中InnoDB引擎行数据过大对B+树存储的影响
    效率工具推荐一个程序员常用的工具网站:程序员常用工具(http://cxytools.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。小报童专栏精选Top100推荐一个小报童专栏导航站:小报童精选Top100(http://xbt100.top),收录了生财有术项目精选、A......
  • ubuntu 22.04 安装MySQL8后的基本设置
    安装sudoaptupdatesudoaptupgradesudoaptinstallapache2mysql-serverphplibapache2-mod-phpphp-mysql初始化配置MySQL初始化配置以及设置root密码初始化MySQL安全配置sudomysql_secure_installation这个命令会提示您进行一系列的安全设置,包括:是否......