MySql的存储过程和触发器
2015-10-26 16:21
351 查看
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
用途举例:同步插入数据至不同类型的表,同步删除关联数据。
创建存储过程(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
用途举例:同步插入数据至不同类型的表,同步删除关联数据。
相关文章推荐
- MySql学习笔记----简单命令
- mysql分组查询group by时分页的实现。
- 第 四 十 一 天:mysql 调 优 方 式
- mysql添加并返回主键
- mysql导入导出库、修改root密码脚本
- 输出当前MySQL的环境变量:
- MySQL replication 主从配置
- mssql与mysql 数据迁移
- mysql 的类型转换函数cast的用法
- mysql 索引
- Mysql FIND_IN_SET函数
- 如何将.sql文件导入MySQL
- mysql出现Waiting for table metadata lock的原因及解决方案
- mysql免密码登录
- Mysql自增id重新从1排序
- MySQL的lock tables和unlock tables的用法
- mysql5.1及以上版本动态关闭和开启慢日志功能
- MySQL5.5(cmake)简介、安装、应用、账户授权、还原、备份、还原
- PowerDesigner中导入MYSQL数据库结构的步骤
- MySQL 5.6初始配置调整