mysql存储过程之创建存储过程

在11年10月份要做性能测试,需要验证数据库中已存在百万条数据的情况下性能情况,数据准备是通过写存储过程向数据库中插入百万条数据。学习存储过程是挺悲惨的,晚上做梦的时候还在写呢,还好梦没白做,存储过程还是写出来了。
性能测试早就已经做完了,周末的时候整理的存储过程的一些方法,很简单,如果只是简单的使用,应该够用了。对于错误处理、游标、事务的高级使用,请高手拍砖吧。^_^

工具:SQLyog Enterprise、SecureCRT 5.0

客户端创建存储过程:
1.创建存储过程
客户端选择数据库,在Stored Proces文件夹下右健单击,选择Create Stored Procedure.....


在弹出的提示框中输入存储过程名称,点击Create按钮
 

创建效果如下图

DELIMITER $
DROP PROCEDURE IF EXISTS HelloWorld$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `XXXXX`.`HelloWorld`()
    /*LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'*/
    BEGIN
	
    END$

DELIMITER ;

2.在BEGIN和END$$之间输入内容

DELIMITER $
DROP PROCEDURE IF EXISTS HelloWorld$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `XXXXX`.`HelloWorld`()
    /*LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'*/
    BEGIN
	SELECT "HelloWorld";
    END$

DELIMITER ;

说明:
1).DELIMITER 命令确保把'$$'作为语句的终结条件,通常,MYSQL会把 ';'作为语句终结,但是因为存储过程休中包含多个';'符号,因此将语句的终结条件进行转义;
2).DROP PROCEDURE IF EXISTS 语句确保在同名存储过程已存在的情况下将其移除;
3).CREATE PROCEDURE 指示一个存储过程定义开始;
4).BEGIN 指示存储过程程序开始,所有超过一个语句的存储过程程序必须用至少一个BEGIN-END块来定义程序的开始和结束;
5).SELECT "HelloWorld"; 一个简单的语句;
6).END$$ 结束存储过程;

3.编译刚刚创建的存储过程
选中存储过程全部内容,运行客户端的Execute All Queries按钮,编译确认编写的存储过程无异常;


4.运行存储过程
1).客户端调用存储过程
存储过程程序后书写调用语句 CALL HelloWorld();
选中些调用语句,运行Execute All Queries按钮,返回存储过程结果


2).连接mysql命令行客户端;
1.mysql -uroot -pcanada XXXX(数据库名称); 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2811144
Server version: 5.5.9-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
2.调用存储过程;
mysql>CALL HelloWorld();
3.显示结果;
+------------+
| HelloWorld |
+------------+
| HelloWorld |
+------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值