MySql(18)------mysql触发器的使用
来源:互联网 发布:松井玲奈毕业 知乎 编辑:程序博客网 时间:2024/06/05 17:08
1. 触发器概要
MySql从5.0.2开始支持触发器。触发是与表相关的数据库操作,在满足定义条件时触发,并执行触发器中定义的语句。
可以协助应用程序在数据库端确保数据的完整性,减少不必要的逻辑处理。触发器只能创建在永久表上,不能创建在临时表上。
对于同一个表,相同触发时间,相同触发事件,只能定义一个触发器。
创建语法:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW trigger_statement
trigger_name: 触发器名字
trigger_time: 触发时间,包括before或after,before是指在检查约束前触发,after是检查约束后触发
trigger_event: 触发事件,包括insert,update或delete
table_name: 触发器针对的表名
trigger_statement: 触发器触发后执行的sql集合
FOR EACH ROW: 行级触发器,mysql不支持语句级触发器
注意: 使用old和new来引用触发器中发生变化的记录内容。
2. 实例准备条件
创建表1:
CREATE TABLE `t_user_main` ( `f_userId` int(10) NOT NULL AUTO_INCREMENT COMMENT '用户id,作为主键', `f_userName` varchar(5) DEFAULT NULL COMMENT '用户名', `f_age` int(3) DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`f_userId`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
插入数据:
INSERT INTO t_user_main (f_userName, f_age) VALUES('one',24),('two',25),('three',26),('four',27),('five',28),('six',29);创建表2:
CREATE TABLE `t_user_person_info` ( `f_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `f_userId` int(11) NOT NULL COMMENT '用户id', `f_salary` decimal(14,2) NOT NULL DEFAULT '0.00' COMMENT '工资', PRIMARY KEY (`f_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. 创建触发器实例
eg:
DELIMITER $$CREATE TRIGGER user_main_tr AFTER INSERTON t_user_mainFOR EACH ROWBEGIN INSERT INTO t_user_person_info(f_userId) VALUES (new.f_userId);END $$DELIMITER;测试触发器:
4. 查看触发器
触发器查看不如表,视图,函数,存储过程查看方便,mysql提供的触发器查看命令如下:
show triggers \G;该命令只能查看所有的触发器,如果需要查看具体的触发器,需要使用系统
库information_schema查询。
查看所有触发器,这里只有一个,所以看到一个,如果有多个,可以看到多个:
指定触发器查看:
5. 删除触发器
DROP TRIGGER [schema_name.] trigger_name;
- MySql(18)------mysql触发器的使用
- MySQL触发器的使用
- MySQL触发器的使用
- MySQL触发器的使用
- Mysql 触发器的使用
- MySQL触发器的使用
- mysql 触发器的使用
- mysql 触发器的使用
- mysql触发器的使用
- mysql触发器的使用
- MySQL触发器的使用
- mysql 触发器的使用
- mysql 触发器的使用
- mysql触发器的使用
- MYSQL触发器的使用
- mysql触发器的使用
- mysql的触发器使用
- MySQL 触发器的使用
- C语言概述(2)
- PAT乙级(Basic Level)1038(C++)
- 通过案例对SparkStreaming透彻理解(2)
- 学习opencv的第一个程序
- 树形DP______Tree Cutting( POJ 2378 )
- MySql(18)------mysql触发器的使用
- 前序 中序 后序遍历 转换
- Vijos P1098 合唱队形(动态规划,双重LIS)
- Shader Forge中文帮助手册
- 语句include和require的区别
- JAVA中的String
- C# 日期格式化 补零
- Node.Js fs模块文件夹操作
- 数据处理可视化技术D3.JS--JavaScript常识