mysql存储过程及函数
来源:互联网 发布:我的知乎首页没有提问 编辑:程序博客网 时间:2024/05/17 19:21
注意:mysql中的用户变量的生命周期是会话级的,不是语句级的!
存储过程--------------------------------------------------
drop procedure if exists usp_simple;
delimiter //
create procedure usp_simple(in ip int, out op int, inout iop int)
begin
select count(*) into op from t1;
set op = op + ip;
set iop = iop * 2;
end;
//
delimiter;
执行:
set @iop = 3;
call usp_simple(6,@op,@iop);
select @op,@iop
------------------------------
drop procedure if exists usp_simple2;
delimiter //
create procedure usp_simple2()
begin
select * from t1;
end;
//
delimiter;
执行:
call usp_simple2();
函数------------------------------------------------------
delimiter //
CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
RETURN CONCAT('Hello, ',s,'!');
//
delimiter ;
SELECT hello('world');
-------------------------------------------------------------
注意在复制系统里,存储过程和函数的确定性,这一点非常重要!!!!
在主服务器上,除非子程序被声明为确定性的或者不更改数据,否则创建或者替换子程序将被拒绝。默认情况下创建SP或者FN肯定会遇到1418的错误号。
解决办法:
在选项文件里,配置log_bin_trust_routine_creators=1。Mysql会认为所有创建子程序的创建者都是可以信任的,创建的子程序都是确定的。
不确定性子程序举例:
1. ------------------------------------
CREATE FUNCTION myfunc () RETURNS INT
· BEGIN
· INSERT INTO t (i) VALUES(1);
· RETURN 0;
· END;
按照上面定义,下面的语句修改表t,因为myfunc()修改表t, 但是语句不被写进二进制日志,因为它是一个SELECT语句:
SELECT myfunc();
2.--------------------------------------
delimiter //
CREATE PROCEDURE mysp ()
BEGIN
IF @@server_id=2 THEN DROP DATABASE accounting; END IF;
END;
//
delimiter ;
CALL mysp();
CREATE PROCEDURE和CALL语句将被写进二进制日志,所以从服务器将执行它们。因为从SQL线程有完全权限,它将移除accounting数据库。
- mysql存储过程及函数
- mysql 函数及存储过程
- mysql 5.0存储过程及相关函数
- mysql存储过程详解及函数
- mysql存储过程及常用函数
- mysql 导入导出函数及存储过程
- mysql 存储过程及常用函数
- mysql 函数与存储过程及区别
- MySQL存储过程详解及mysql基本函数
- mysql导出数据库及存储过程及函数
- mysql 函数 + 存储过程
- mysql函数+存储过程
- MySQL存储过程、函数
- MySQL存储过程、函数
- mysql存储过程,函数
- mysql存储过程存储函数
- 查看MySQL所有存储过程、函数、视图、触发器及表
- MySQL导出数据库、数据库表结构、存储过程及函数
- 【转载】VC中显示行号的插件
- 带权中位数
- js 实现表格对角线
- MYSQL复制
- MYSQL管理
- mysql存储过程及函数
- 系统无法让你登陆,请确认您的用户名和域名无误,怎么办?
- win ce编程下常用控件的用法
- 【转】Apache与Tomcat的三种连接方式介绍
- iphone的动画效果类型及实现方法
- MYSQL备份恢复
- MYSQL授权
- HR的至高机密:20个公司绝对不会告诉你的潜规则
- 软件工程师不可不知的10个概念