mysql存储过程及函数
注意: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 //
相关文档:
转载自:http://www.neatstudio.com/index-4.shtml
文章来自寂寞hacker,http://hi.baidu.com/isbx/blog/item
/08ef48547ef1ad58574e00bf.html:
当前的Web开发者中肯定有不少人没有注意到作者所提到的这两个问题的。
第一个问题是这样的,MySQL默认有一个配置参数
max_packet_size,这个参数是用于限制MySQL客户端和My ......
php+mysql扎实个人基本功
一. 10句话
1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global的ON/OFF会对自己有什么影响的那天起,就应该勇敢地把它设为OFF.
2.写程序前看看怎么用error_reporting.
3.不懂就问本身没错,但你需要在那之前查查手册。
4.当然,你需要懂得使用手 ......
这里收集各种Mysql的基础知识,为了某些场合的需要,还是舍弃navicat之类的工具乖乖用命令行吧
(注意有的命令需要分号有的不需要)
一.基本操作
1.登录
mysql -u 用户名 -p密码 数据库名
这里需 ......
分页功能的实现是每种WEB开发语言必须要实现的功能。PHP也好,JSP也罢。我准备用两个方法来阐述PHP+MYSQL实现分页的功能。
一、分页程序的原理
分页程序有两个非常重要的参数:每页显示几条记录($pagesize)和当前是第几页($page)。有了这两个参数就可以很方便的写出分页程序,我们以MySql数据库作为数据源, ......
(1)
外键的使用:
外键的作用,主要有两个:
一个是让数据库自己通过外键来保证数据的完整性和一致性.
如:
有表A,表B中一字段是表A某一字段的外键.当删除表A记录时,表B相应记录会作相应处理(删除/或设置外键列为NULL).但若删除表B记录,表A的记录,则不会受影响!
一个就是能够增加ER图的可读性
&nbs ......