MySQL 存储过程
[转载]MySQL:MySQL 创建存储过程(MySQL 5.0)
2008-09-11 22:14
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。
一、MySQL 创建存储过程
“pr_add” 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 “a”、“b”,返回这两个参数的和。
drop procedure if exists pr_add;
-- 计算两个数之和
create procedure pr_add
(
a int,
b int
)
begin
declare c int;
if a is null then
set a = 0;
end if;
if b is null then
set b = 0;
end if;
set c = a + b;
select c as sum;
/*
return c;- 不能在 MySQL 存储过程中使用。return 只能出现在函数中。
/
end;
二、调用 MySQL 存储过程
call pr_add(10, 20);
执行 MySQL 存储过程,存储过程参数为 MySQL 用户变量。
set @a = 10;
set @b = 20;
call pr_add(@a, @b);
三、MySQL 存储过程特点
创建 MySQL 存储过程的简单语法为:
create procedure 存储过程名字()
(
[in|out|inout] 参数 datatype
)
begin
MySQL 语句;
end;
MySQL 存储过程参数如果不显式指定“in”、“out”、“inout”,则默认为“in”。习惯上,对于是“in” 的参数,我们都不会显式指定。
1. MySQL 存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”
2. MySQL 存储过程参数,不能在参数名称前加“@”,如:“@a int”。下面的创建存储过程语法在 MySQL 中是错误的(在 SQL Server 中是正确的)。 MySQL 存储过程中的变量,不需要在变量名字前加“@”,虽然 MySQL 客户端用户变量要加个&
相关文档:
<?php
/**
* Mysql DB
*
* @author Administrator
* @package defaultPackage
*/
class MySqlDB{
private $_db;
private static $_instance;
private function __construct(&$db_type){
global $connectionstr;
$conn_db=$connectionstr[$db_type];
$this->_db=mysql_pconnect($conn ......
如何创建内存表
?
创建内存表非常的简单,只需注明 ENGINE=
MEMORY 即可:
CREATE TABLE `tablename` ( `columnName` varchar(256) NOT NUL)
ENGINE=MEMORY DEFAULT CHARSET=utf8 MAX_ROWS=100000000;
注意
:
当内存表中的数据大于max_ ......
=== 稍后再整理
mysql
4.0到mysql
5.0的数据导入出现乱码的解决方案
字体大小:大
| 中
| 小
2007-02-08 17:09 -
阅读:485 - 评论
:0
最近做mysql
4.0到mysql
5.0的数据转化工作,发现乱码
无数,观博客无数心得如下:
*mysql
中文亂碼的原因
mysql
會出現中文 ......
通过分区(Partition)提升MySQL性能
作者:foxcai 来源:foxcai 的 Blog (2006-05-08 14:30:34)
通过分区(Partition)提升MySQL性能
——MySQL5.1新特性翻译系列
几年前,俺写过一篇题为“The Founda ......
安装完phpmyadmin
大家经常出现的问题就是报错:“无法载入mysql扩展,请检查php配置”。
如果你使用的是php5.2以上的版本,请注意:php对服务的扩展功能做了一定的改动,也就是说,你安装php和扩展的方式也要做调整了。
主要的调整有两方面,一是PHP5.2以上的版本中,PHP.INI文件无需添加到WINDOWS目录下。二 ......