触发器:
触发器:
触发器是由事件来触发某个操作,这些事件包括 INSERT, UPDATE, DELETE 事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句的时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。
创建触发器:
create trigger 触发器名 触发时间 触发事件 on 表名 for each row
begin
触发程序
end;
查看触发器:
- 使用show triggers命令查看触发器的定义;
- 通过查询information——schema 数据库中的triggers表;
- 使用“show create trigger”命令可以查看某一个触发器的定义。
删除触发器:
drop trigger [if exists][数据库.]触发器名称;
存储过程:
1.创建存储过程的语法格式:
create procedure 存储过程名 ([[ in | out | inout ] 参数名称 参数类型 ])
[characteristic ...] routine_body
routine_body:表示存储过程中的过程体,是包含在存储过程中有效的SQL例程语句,以BEGIN表示过程体的开始,以END表示过程体的结束。如果过程体中只有一条SQL语句,则可以省略BEGIN和END的标志。
2.查看存储过程的语法格式:
- 使用show procedure status 命令查看存储过程的定义;(如果存储过程较多,可以使用“show procedure status like 模式\G”命令可以查看与模式模糊匹配的存储过程的定义。)
- 查看某个数据库(例如 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 ... ];