首页 > 数据库 >《Mysql基础》【Mysql触发器 新建触发器、修改触发器、删除触发器、举例】 编程入门 学习分享 【公开免费】

《Mysql基础》【Mysql触发器 新建触发器、修改触发器、删除触发器、举例】 编程入门 学习分享 【公开免费】

时间:2023-04-01 14:12:14浏览次数:42  
标签:触发器 set mysql 编程 trigger student Mysql row

 -- mysql数据库程序设计笔记:

-- =========第八章:触发器========================
触发器:触发执行特定事件。(关联表对象,当特定事件出现时,触发激活)
目的:保护表数据,(保证表数据完整性和一致性。)
1、新建触发器:
格式:create trigger 数据库名.触发器名称  触发时刻 insert  on 表名 for each row set 触发动作和条件;
(其中触发时刻为:before 或 after )
格式速记:
	create trigger 库.触 
	时刻 insert on 
	表 for each row set 条件; 

举例:给表创建一个触发器,每次向表插入一行数据,插入时,把str设定为“one student ”
mysql> create trigger db_school.trName after insert on tb_student for each row set @str='one student';
Query OK, 0 rows affected (0.20 sec)
验证触发器:
先插入数据:
insert into tb_student(studentNo,studentName,sex,birthday,native,nation,classNo,studentID) values('201664','王梦天','女','1980-01-22','山西大同','汉','1班','1423372333344');
查询触发器:
mysql> select @str;
+-------------+
| @str        |
+-------------+
| one student |
+-------------+
1 row in set (0.00 sec)

2、删除触发器:
格式:drop trigger is exists 数据库名.触发器名;

举例:
mysql> drop trigger db_school.trName;
Query OK, 0 rows affected (0.00 sec)

3、更新触发器:
格式:create trigger 数据库名.触发器名称  before update  on 表名 for each row set 触发动作和条件;
(其中触发时刻只能是:before )
(触发动作中:new为可修改,old为只读)
   
格式速记:
	create trigger 库.触  
	before update on 
	表 for each row set 条件;  

举例:在数据db_school创建一个触发器trUpdate,在每次更新学生表时将nation列值设定为native值:
mysql> create trigger db_school.trupdate before update on tb_student for each row set new.nation=old.native;
Query OK, 0 rows affected (0.16 sec)
触发器验证:
先更新数据:把王梦天同学名字改为张飞:
mysql> update tb_student set studentName='张飞' where studentName='王梦天';
Query OK, 1 row affected (0.08 sec)
Rows matched: 1  Changed: 1  Warnings: 0

查看表:
mysql> select * from tb_student where studentName='张飞';
+----+-----------+-------------+------+------------+----------+----------+---------+---------------+
| id | studentNo | studentName | sex  | birthday   | native   | nation   | classNo | studentID     |
+----+-----------+-------------+------+------------+----------+----------+---------+---------------+
| 24 | 201664    | 张飞        | 女   | 1980-01-22 | 山西大同 | 山西大同 | 1班     | 1423372333344 |
+----+-----------+-------------+------+------------+----------+----------+---------+---------------+
1 row in set (0.00 sec)

可以看到nation变成了native列的值,因此说触发器是被执行的。

  

标签:触发器,set,mysql,编程,trigger,student,Mysql,row
From: https://www.cnblogs.com/liuguiqing/p/17278532.html

相关文章

  • 并发编程背景知识
    目录一、开篇介绍二、为什么要有操作系统三、什么是操作系统四、操作系统发展史手工操作——穿孔卡片联机批处理系统脱机批处理系统五、多道程序系统单道技术多道技术一、开篇介绍顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系......
  • zabbix配置触发器。。。。即设置监控项报警的分界值!!
              {192.168.8.101:system.users.num.last()}>6            报警声音设置    测试触发器报警:   问题来了,触发器提醒运维人员,需要及时处理一般问题!! ......
  • 《Mysql基础》【Mysql表查询、去重、表连接、左连接 右连接、子表查询、排序、分组等
     --mysql数据库程序设计笔记:第三章:查询1、单表查询:1)、简单查询查所有列:格式:select*from表名;举例:mysql>select*fromtb_student;+----+-----------+-------------+------+------------+----------+--------+---------+-------------------+|id|studentNo|s......
  • 实验3 函数应用编程
    1.实验任务1task1.c1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);//函数声明8voidprint_spaces(intn);//函数声明9voidprint_bla......
  • c++socket编程之客户端编写
    开头用WINAPI完成了socket客户端的编写cursor很适合用于写这种单文件的WINAPI代码编写,写的很规范,它帮助我完成了API的调用,参数的选择和异常值处理,自己去写还挺费时间但不得不吐槽下,我提的几个处理中文和处理多任务的需求,无论我换何种说法,它实现的都不太好,甚至还有错误功......
  • c++ socket编程之成品展示
    开头前面两篇介绍了服务端和客户端的编写,本篇展示运行效果多次测试,修复了bug,目前运行稳定,能够用于生产环境支持多个连接,能够同时处理多个数据传输任务效果展示服务端初始界面......
  • mysql - 存储过程
    定义存储过程(storedprocedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。分类存储过程分为系统存储过程和自定义存储过程。1)系统存储过程在master数据库中,但是在其他的数据库中可以直接调用,并且在调用时不必在存......
  • 《Mysql基础》【Mysql表的基本操作 新建表、修改表、删除表、外键约束、主键约束、完
     --mysql数据库程序设计笔记:表基本操作:1、新建表:格式如:1)、建表加主键:createtable表名(idintNOTNULLauto_incrementcomment'自增主键id',列名类型(范围)comment'列备注',...primarykey(id))engine=InnoDB;2)、建表加候选键副键约束createtable表名......
  • c++ socket编程之服务端编写
    开头想要写一个带界面、功能全面、传输高效、运行稳定的马儿,能够在生产环境下工作在cursor的帮助下,用一天时间完成了服务端和客户端的编写另外一天时间卡在了中文消息传输处理和大文件传输粘包、分包问题上功能收发消息,支持中文消息发送命令执行并显示命令执行结果任意......
  • 《Mysql基础》【Mysql删除数据库、新建数据库、修改数据库】 编程入门 学习分享 【公
     --mysql数据库程序设计笔记:数据定义:1、创建数据库:如:createdatabasedb_pro_1defaultcharsetgb2312collategb2312_chinese_ci;QueryOK,1rowaffected(0.00sec)或:createdatabasedb_pro_2defaultcharactersetgb2312defaultcollategb2312_chinese_ci;......