IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Mysql中的存储过程

Incessant 2009-10-11 22:36:09 累计浏览 3,050 次
本机暂存

    Mysql 5.0 推出来的一个功能,在我看来和oracle差不多的,语法上稍微有一点点不同,下面写了一个例子模板,大家用到时可以很容易套用。

    mysql> delimiter // --语句结束符更改为//

    --定义存储过程

    mysql>create procedure ptest(out return_val int)

    begin

    declare a1 ,b1 int default 5; --定义变量

    declare cur1 cursor for select a from test; --定义游标

    declare exit handler for not found begin insert into test_error(msg) values(\'ptest not found\'); set b1=1 ;end; --定义异常处理(not found)

    declare exit handler for sqlexception set b1=1;--定义异常捕获及处理(sqlexception 表示sql执行异常时)

    open cur1; --打开游标

    repeat

    fetch cur1 into a1;

    until b1=1 --出现任何异常,程序退出

    end repeat;

    close cur1;

    set return_val=a1; --变量赋值

    end;

    //

    mysql> delimiter ; --语句结束符更改回;

    --如何调用存储过程:

    mysql>call ptest(@va);

    注:

    1.创建存储子程序需要CREATE ROUTINE权限

    2.查询存储过程的定义SHOW CREATE PROCEDURE ptest\\G

    3.查询存储过程的状态SHOW CREATE PROCEDURE STATUS LIKE \'ptest\'\\G

    参考:

    http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,250)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,397)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,163)
  4. Mysql监控指南 (累计阅读 21,350)
  5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,521)
  6. 如何查找消耗资源较大的SQL (累计阅读 15,209)
  7. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,056)
  8. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  9. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,904)
  10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,708)