存储程序函数触发器

157 阅读2分钟

触发器:

触发器:

触发器是由事件来触发某个操作,这些事件包括 INSERT, UPDATE, DELETE 事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句的时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。

创建触发器:

create trigger 触发器名 触发时间 触发事件 on 表名 for each row 
begin
	触发程序
end;

image.png

查看触发器:

  1. 使用show triggers命令查看触发器的定义;
  2. 通过查询information——schema 数据库中的triggers表;
  3. 使用“show create trigger”命令可以查看某一个触发器的定义。

删除触发器:

drop trigger [if exists][数据库.]触发器名称;

存储过程:

1.创建存储过程的语法格式:

create procedure 存储过程名 ([[ in | out | inout ] 参数名称 参数类型 ])
[characteristic ...] routine_body

routine_body:表示存储过程中的过程体,是包含在存储过程中有效的SQL例程语句,以BEGIN表示过程体的开始,以END表示过程体的结束。如果过程体中只有一条SQL语句,则可以省略BEGIN和END的标志。

image.png

2.查看存储过程的语法格式:

  1. 使用show procedure status 命令查看存储过程的定义;(如果存储过程较多,可以使用“show procedure status like 模式\G”命令可以查看与模式模糊匹配的存储过程的定义。)
  2. 查看某个数据库(例如 choose数据库)中的所有存储过程名,可以使用下面的SQL语句:
select name from mysql.proc while db='choose' and type='procedure';

3.使用show create procedure 命令可以查看指定数据库的指定存储过程的详细信息;

3.删除存储过程的语法格式:

drop procedure 存储过程名;

4.调用存储过程:

call [ 数据库名称. ] 存储过程名称 ([ 实参列表 ]);

5.修改存储过程:

alter procedur 过程名称 [ characteristic ... ];