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的存储过程和触发器相关推荐

  1. (十四)全解MySQL之各方位事无巨细的剖析存储过程与触发器!

    引言 本文为掘金社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究! 前面的MySQL系列章节中,一直在反复讲述MySQL一些偏理论.底层的知识,很少有涉及到实用技巧的分享,而在本 ...

  2. MySQL存储过程和触发器的实现--数据库学习笔记

    从MySQL5.0版本开始就对存储过程和触发器进行了支持,在MySQL进行学习前,先查看您所使用的版本吧,方法有: 1.$mysql -V  //linux终端下 2.select version() ...

  3. mysql触发器和存储过程_MySql的存储过程和触发器

    Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数. 创建存储过程(procedure)时,因为其内部有以; ...

  4. mysql 动态传入表名 存储过程_面试再问MySQL存储过程和触发器就把这篇文章给他...

    Mysql存储过程及触发器trigger 存储过程 一.一个简单的存储过程 1,一个简单的存储过程 delimiter $$create procedure testa()begin Select * ...

  5. MySQL之视图、触发器、事务、存储过程

    http://www.cnblogs.com/linhaifeng/articles/7495918.html 视图 ​ 试图就是一个虚拟表(非真实存在),本质就是[根据sql语句获取动态的数据集,并 ...

  6. Mysql 创建表、存储过程、触发器 -Angelo 分享

    Mysql 创建表.存储过程.触发器 -Angelo 分享 简单的小例子,创建两个表,一个存储过程,一个触发器 存储过程是个 while 循环,也很简单,循环网表里插数据 功能:表一只要有insert ...

  7. mysql 自定义函数 事务_MySQL存储过程、触发器、自定义函数、事务

    1.存储过程 MySQL中存储过程的参数中有IN.OUT.INOUT类型,但是函数的参数只能是IN类型的. "in" 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过 ...

  8. MySQL学习记录 (五) ----- 存储函数、存储过程和触发器

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  9. MySQL必知必会笔记(六)存储过程 游标 触发器

    第二十三章 使用存储过程     MySQL5 中添加了存储过程的支持.     大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成    ...

最新文章

  1. 让我们一起认识一下Nodejs
  2. 如何删除被锁定的文件(一)他山工具篇 WhoLockMe?
  3. 《领域特定语言》一2.3DSL的问题
  4. 请不要轻易使用 is_numberic 加入存在E字母
  5. python和node_Python和NodeJS绘图对比
  6. Libre OJ 「BalticOI 2013」非回文数 数位dp
  7. 详解mysql什么时候不走索引
  8. C#的多线程机制探索3
  9. 第一次用Axure~
  10. kuangbin带你飞dp专题-基础dp
  11. 360提高计算机运行速度,简单操作,360优化加速帮你优化电脑运行速度
  12. 金蝶K3与IMS系统搭建销售订单交期回复系统
  13. 6种php加密解密方法
  14. GROMACS Tutorial 3-Umbrella Sampling
  15. uniapp 微信小程序开发 图片上传压缩
  16. 深度技术GhostXP专业版V9.0之初体验
  17. 更改linux的用户名
  18. 光学神经网络 Optical neural network
  19. 随记--做一个“懒惰”的程序员
  20. 2.5 lazy initialization

热门文章

  1. git提交远程报错[rejected] master - master (fetch first)
  2. SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用
  3. 【TypeScript】TypeScript 学习 4——模块
  4. kohana::模板全攻略
  5. C# 动态语言扩展(学习笔记)
  6. SkyEye卫星篇:从无到有的国之“芯”
  7. 批处理管理文件以及文件夹
  8. (37)FPGA三种基本逻辑门(非门)
  9. (68)信号发生器DDS协议(第14天)
  10. (2)FPGA面试题竞争与冒险