之前做项目的时候,项目组中有成员在大数据量搜索的时候使用了存储过程。但是没有仔细了解,今天突然使用到它,所以就稍微学习了一下。
本来是要用PL/SQL developer编写Oracle10g的存储过程去调用一台远程服务器的,突然发觉我本机上没装Oracle,用不了PL/SQL developer(这是哪门子设计啊,百度了一下,发现有办法不装Oracle而使用developer.可是还要下什么文件,网友给的下载链接又失效了),索性用mySQL的工具来写mySQL的存储过程。我使用的工具是SQLyog企业版。
在一个数据库中新建一个user库,有姓名,财产什么的,然后再建一个存储过程,将代码写上去
DELIMITER $$
USE `nn`$$
DROP PROCEDURE IF EXISTS `addMoney`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `addMoney`(IN xid INT(5),IN xmoney INT(6))
BEGIN
UPDATE USER u SET u.money = u.money + xmoney WHERE u.id = xid;
END$$
DELIMITER ;
恩,然后执行一下这些sql语句,一个存储过程就建起来了。
解释一下, 基本的格式就是 create procedureName(in paramentName type, in paramentName type,……)
创建一个叫procedureName的存储过程,然后再begin和end之间写处理逻辑。
恩,最后要试看看这个存储过程能用不了啊。
CALL addMoney(1, 500);useruseraddMoney
给id是1的人发500元钱,不错哈……
这里要注意,MySQL的存储过程调用是用CALL,而oracle的貌似使用execute的……
by NN 2009-10-13