MySql的存储过程和触发器
Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数。
创建存储过程(procedure)时,因为其内部有以;结尾的sql语句,所以我们要更改语句结束符,使用delimiter //来更改结束符为//。然后就可以定义了,eg
create procedure name()
begin
declare a int(10);
set a = 1;
while a<10 do
if a%2 = 1 then
set a = a+1;
insert into users values (null,a,’’,’’);
else
set a=a+1;
end if;
end while;
end //
调用时直接使用call name()来就可以,注意要带()。
显示创建过程用show create procedure name
显示所有存储过程用show procedure status
删除存储过程用 drop procedure name
存储过程内可以使用字符串,时间和数学函数。同时可以在参数列表中定义传入和传出的参数,定义输出参数 out a int,在存储过程内部给这个变量@a赋值,显示时用select @a。
Mysql的触发器相当于内部处理的一些过程,他不带入和带出任何的参数,其内部使用的参数就是新旧两条记录old和new的字段。用于完成数据表之间的触发操作,来保证数据库的一致性、完整性。
定义触发器的规程:
create trigger name after|before delete|update|insert on table_name for each row begin end 当有多个语句的时候就用begin和end,不可以有多个相同时间点的相同类型操作。Eg
Create trigger name before update on users
For each row
Begin
If new.admin = 1 then
Set new.admin =1;
Else
Set new.admin =0;
End if;
End
调用触发器,当在表上出现制定的操作时,执行相应的触发器。
删除触发器drop trigger name
用途举例:同步插入数据至不同类型的表,同步删除关联数据。
转载于:https://www.cnblogs.com/likeju/p/4911570.html
MySql的存储过程和触发器相关推荐
- (十四)全解MySQL之各方位事无巨细的剖析存储过程与触发器!
引言 本文为掘金社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究! 前面的MySQL系列章节中,一直在反复讲述MySQL一些偏理论.底层的知识,很少有涉及到实用技巧的分享,而在本 ...
- MySQL存储过程和触发器的实现--数据库学习笔记
从MySQL5.0版本开始就对存储过程和触发器进行了支持,在MySQL进行学习前,先查看您所使用的版本吧,方法有: 1.$mysql -V //linux终端下 2.select version() ...
- mysql触发器和存储过程_MySql的存储过程和触发器
Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数. 创建存储过程(procedure)时,因为其内部有以; ...
- mysql 动态传入表名 存储过程_面试再问MySQL存储过程和触发器就把这篇文章给他...
Mysql存储过程及触发器trigger 存储过程 一.一个简单的存储过程 1,一个简单的存储过程 delimiter $$create procedure testa()begin Select * ...
- MySQL之视图、触发器、事务、存储过程
http://www.cnblogs.com/linhaifeng/articles/7495918.html 视图 试图就是一个虚拟表(非真实存在),本质就是[根据sql语句获取动态的数据集,并 ...
- Mysql 创建表、存储过程、触发器 -Angelo 分享
Mysql 创建表.存储过程.触发器 -Angelo 分享 简单的小例子,创建两个表,一个存储过程,一个触发器 存储过程是个 while 循环,也很简单,循环网表里插数据 功能:表一只要有insert ...
- mysql 自定义函数 事务_MySQL存储过程、触发器、自定义函数、事务
1.存储过程 MySQL中存储过程的参数中有IN.OUT.INOUT类型,但是函数的参数只能是IN类型的. "in" 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过 ...
- MySQL学习记录 (五) ----- 存储函数、存储过程和触发器
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL必知必会笔记(六)存储过程 游标 触发器
第二十三章 使用存储过程 MySQL5 中添加了存储过程的支持. 大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成 ...
最新文章
- 让我们一起认识一下Nodejs
- 如何删除被锁定的文件(一)他山工具篇 WhoLockMe?
- 《领域特定语言》一2.3DSL的问题
- 请不要轻易使用 is_numberic 加入存在E字母
- python和node_Python和NodeJS绘图对比
- Libre OJ 「BalticOI 2013」非回文数 数位dp
- 详解mysql什么时候不走索引
- C#的多线程机制探索3
- 第一次用Axure~
- kuangbin带你飞dp专题-基础dp
- 360提高计算机运行速度,简单操作,360优化加速帮你优化电脑运行速度
- 金蝶K3与IMS系统搭建销售订单交期回复系统
- 6种php加密解密方法
- GROMACS Tutorial 3-Umbrella Sampling
- uniapp 微信小程序开发 图片上传压缩
- 深度技术GhostXP专业版V9.0之初体验
- 更改linux的用户名
- 光学神经网络 Optical neural network
- 随记--做一个“懒惰”的程序员
- 2.5 lazy initialization
热门文章
- git提交远程报错[rejected] master - master (fetch first)
- SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用
- 【TypeScript】TypeScript 学习 4——模块
- kohana::模板全攻略
- C# 动态语言扩展(学习笔记)
- SkyEye卫星篇:从无到有的国之“芯”
- 批处理管理文件以及文件夹
- (37)FPGA三种基本逻辑门(非门)
- (68)信号发生器DDS协议(第14天)
- (2)FPGA面试题竞争与冒险