一、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来查看所有的触发器,了解所有相关的触发器,这样的话就会减少一些不必要的麻烦,因为每个触发器的触发都有可能对某一个或某几个表进行一些不为人知的操纵,所以要注意触发器。