现在的位置: 首页 > 综合 > 正文

MySQL 中的存储过程以及触发器的讲解

2018年02月03日 ⁄ 综合 ⁄ 共 1200字 ⁄ 字号 评论关闭

一、MySQL中的存储过程

1、存储的建立:

  create procedure  p1(out parm  int)
begin
select count(*) into parm from student;
end
//

2、存储的调用:

 存储的调用和其他的不一样,而是使用call 来调用存储过程的;

 call  procedureName (parameter);

举例:

call p1 (@s) //

select @s//

3、查看存储过程和函数:

 show   procedure / function status   like 'xxx';


4、查看存储过程和函数的状态。

show create  procedure | function  sp-name;

SHOW STATUS语句只能查看存储过程或函数所操作的数据库对象,如存储过程名称或函数的名称、类型、定义者、修改时间等信息,并不能查询存储过程或函数的具体定义。如果需要查看详细定义,需要使用show  create 语句;


5、删除存储过程和函数:

 drop  procedure  / function if exists sp-name;


二、MySQL中的触发器


1、触发器介绍: 触发器是由事件来触发某个操作。这些事件包括insert、 update和delete语句。当数据库系统中执行这些事件时,就会激活触发器执行相应的操作。


2、触发器的创建: crate   trigger  triggername  before /after 触发事件   on   tablename  for  each row    执行语句。

举例: create trigger   auto_save   before  insert    on student   for each row   insert into stu values('t1',11);

当在student表中插入数据之前,会触发这个事件,这个事件就是向stu这个表中插入给定的值。


3、查看触发器的信息: show triggers;

查看triggers 表中触发器信息:在MySQL 数据库中,所有触发器的定义都存放在该数据的triggers表中。所以可以通过查询triggers表来查看数据库中所有的触发器的详细信息。

select  * from  information_schema.triggers; 其中的information_schema是MySQL中默认存在的库,而information_schema是数据库中用于记录触发器信息的数据表。


4、删除触发器: drop trigger triggername;

    在应用完触发器后,切记一定要将触发器删除,否则在执行某些数据库操作时,会造成数据的变化。在一个避免方式就是使用show triggers来查看所有的触发器,了解所有相关的触发器,这样的话就会减少一些不必要的麻烦,因为每个触发器的触发都有可能对某一个或某几个表进行一些不为人知的操纵,所以要注意触发器。


抱歉!评论已关闭.