mysql之存储过程(一)
今天开发一个需求,需要在一个旧表中增加一列并且对已经的表中记录初始化新列的值,
由于是一次性的工作,故写了个存储过程来代替代码程序初始化
创建及执行过程记录如下:
MySQL [XXX_YYY]> delimiter $$
MySQL [XXX_YYY]>CREATE PROCEDURE `updateShopIXXXXXSkuIdV2`()
-> BEGIN
-> #Routine body goes here...
-> declare i int;
-> set i=0;
-> set @sum=(select count(1) from shopxxx_info where xx_sku_id is null and yn = 1);
-> set @log = "log query ....";
-> select CONCAT(@log,@sum," 条");
-> while i<@sum do
-> set @itemId =( select item_id from shopxxx_info where xx_sku_id is null and yn = 1 limit i,1);
-> set @jdSkuId =( select jd_sku_id from item_yyyy_table where item_id = @itemId limit 1);
-> #set @itemId = 4499991;
-> #set @xxSkuId =29825634;
-> #select @itemId , @jdSkuId;
-> if @itemId is NULL THEN
-> select @itemId ;
-> elseif @xxSkuId is NULL THEN
-> select @xxSkuId;
-> else
-> update shopxxxx_info set xx_sku_id = @xxSkuId ,modified = now() where item_id = @itemId and yn = 1;
-> end if;
-> set i=i+1;
-> end while;
->
-> END$$
Query OK, 0 rows affected (0.01 sec)
MySQL [XXX_YYY]> call updateShopIXXXXXSkuIdV2()$$
+--------------------------+
| CONCAT(@log,@sum," 条") |
+--------------------------+
| log query ....126 条 |
+--------------------------+
MySQL [XXX_YYY]> delimiter ;
ps:创建存储过程可以用navicate等客户端工具生成调试,然后把调试好的存储过程脚本,在生产环境中重写一下就好。
mysql之存储过程(一)的更多相关文章
- MYSQL中存储过程的创建,调用及语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- MYSQL分页存储过程及事务处理
最近给客户做的一小系统是SQLSERVER的数据库,因为特殊原因要切换到MYSQL上去,切换数据库确实让人头疼的,SQLSERVER和MYSQL的存储过程还是有很大差别的,下面是我做切换时转换的MYS ...
- mysql之存储过程
一.存储过程 迄今为止,使用的大多数 SQL语句都是针对一个或多个表的单条语句.并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成.例如,考虑以下的情形. 1. ...
- MySQL的存储过程1
来源:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html MySQL的存储过程 2. 关于MySQL的存储过程存储过程是数据库存储的一个重要的功能 ...
- Mysql的存储过程(以Mysql为例进行讲解)
我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 在数据库中,用户通过指定存 ...
- mysql之——存储过程 + 游标 + 事务
下面是自己曾经编写过的mysql数据库存储过程,留作存档,以后用到的时候拿来参考. 其中,涉及到了存储过程.游标(双层循环).事务. [说明]:代码中的注释只针对当时业务而言,无须理会. 代码如下: ...
- MYSQL:基础—存储过程
MYSQL:基础-存储过程 快速入门 理解: 迄今为止,我们学过的大多数SQL语句都是针对一个或多个表的单条语句.但是并不是所有的操作都是可以用一条语句来完成的,经常有一些操作是需要多条语句配合才能完 ...
- MySQL笔记 存储过程 游标 触发器
第二十三章 使用存储过程 MySQL5 中添加了存储过程的支持. 大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成 存储过程简单来说,就 ...
- MySQL 列出存储过程
MySQL 列出存储过程 接下来介绍如何列出MySQL数据库中的所有存储过程,并显示存储过程源代码的一些非常有用的语句. MySQL为提供了一些有用的语句,可以更有效地管理存储过程.这些语句包括列出 ...
- [转]MYSQL 创建存储过程
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
随机推荐
- float 格式化到TCHAR 数组
<span style="white-space:pre"> </span>float lCount = 123.3; TCHAR tcBalance[MA ...
- 不使用.h .lib文件使用DLL内的函数
#include <windows.h> typedef int (*Func)(const char *fmt, ...); //这里声明一个函数指针,typedef 关键字是必须的,好 ...
- zabbix监控日志关键字
1 添加zabbix监控项目 A.选择类型为“”zabbix客户端(主动式)“” B.键值: xx_log.log 为日志的绝对路径 connectException 为关键字 ---需根据自己需要定 ...
- 百度网盘下载神器 PanDownload v2.0.9(破解版、不限速)
一直用这个软件来下载百度网盘的东西,不限速,贼爽. 链接:https://pan.baidu.com/s/1UjF47YWd2v9x52c5sjhutQ 提取码:v9pe 也可以直接到官网下载:ht ...
- Windbg 实践之符号篇
How to display the size value 1)一开始不会加载,chksym 了一下就加载了. 2) 新版本已经可以显示size的大小了 3)?? 显示变量的类型 4)x std::v ...
- AI 领域与概述
概述 数据分析行业主要的职业发展. 业务:业务分析师.数据产品经理.产品总监 技术:算法师.架构师.研发经理.研发总监 美工:BI工程师 人工智能,是数据分析的子集.人工智能主要包括 语音识别 自然语 ...
- idea抛出异常:org.apache.shiro.authc.AuthenticationException
问题描述 继续在ubuntu下折腾,终于将web项目的所有的东西配置好了,然后运行项目,满怀期待的心情登录系统的时候,突然出现了这个bug,吓得我差点从椅子上跳起来,这两天遇到的bug实在是太多了.. ...
- CMake工具总述
CMake是一个跨平台的安装工具,可以用简单的语句来描述所有平台的安装. CMake的文件为.cmake文件与CMakeLists.txt文件;通过编写上述两种文件就可以完成源程序的安装.
- SJTU T4143 推箱子
问题描述 推箱子是一款经典的小游戏.游戏要求玩家将若干个箱子推到指定的位置,并以箱子移动次数最少作为目标. 现在,我们只需要考虑一个简化的版本--只有一个箱子.对于一张给定的地图,你需要判断是否可以将 ...
- 使用git submodule
git submodule 引用 $ git help submodule $ git submodule add https://github.com/aditya-grover/node2vec. ...