set global log_bin_trust_routine_creators=1;
18.1 存储过程的好处
出错过程和函数提供几个好处对于应用程序开发,配置和操作:
1.更加灵活的SQL语法
2.错误处理能力
3.标准的编译
4.代码的包装和封装
5.更容易理解
6.容易维护
7.减少网络带宽的需要
8.更好安全,不跟用户直接访问
18.2 存储过程和函数的区别
1.一个存储过程并不返回一个值,它被触发调用语句来执行一个操作例如修改一个表或者处理获取额记录
2.一个函数被触发在一个表达式和返回单独的值
3.你不能触发一个函数使用一个call语句,你也不能使用一个表达式使用一个表达式
4.处理参数能够被定义input-only,output-only,或者同时input和out。函数仅仅有熟人参数。
4.函数返回一个值,必须是一个RETURNs语句在一个函数定义来表明返回值的数据类型。必须至少有一个返回语句在函数体来返回调用者。RETURNS和Return并不出现在过程调用
18.3 这存储过程的命名空间
每个存储过程都和特定的数据库,表或视图先关联:
1.db_name.routine_name
2.存储过程执行,它
3.当你抛弃一个数据库是,任何存储过程也被抛弃
18.4 定义存储过程
一个定义能够作为BEGIN/END包含多个语句,每个语句必须以;结尾。可以使用delimiter //
create procedure world_record_count ()
begin
select 'country',count(*) from coutnry;
select 'city',count(*) from city;
End;
//myslq>delimiter ;定义mysql执行恢复为;
18.5 创建存储过程
create procedure proc_name ([parameters])
[characteristics]
routine_body
create function func_name ([parameters])
returns data_type
[characteristics]
roution_body