mysql客户端添加存储过程

DROP PROCEDURE IF EXISTS add_costItem;
DELIMITER $$

CREATE
PROCEDURE `cloud_org`.`add_costItem`()
BEGIN
#定义 变量
DECLARE costTypeId BIGINT;
DECLARE costTypeCode VARCHAR(32);
DECLARE acctTypeId INT;
DECLARE bizZhyCode VARCHAR(40);
DECLARE stationCode VARCHAR(40);

DECLARE str VARCHAR(300);
DECLARE numIndex INT;

DECLARE s INT DEFAULT 0;

DECLARE cursor_name CURSOR FOR SELECT cost_type_id,cost_type_code,acct_type_id,biz_zhy_code,server_station_code FROM sys_cost_item WHERE server_station_code NOT IN (SELECT server_station_code FROM sys_cost_item WHERE cost_item_name = ‘无‘ AND server_station_code!=‘‘ ) GROUP BY cost_type_id;

#设置一个终止标记

DECLARE CONTINUE HANDLER FOR SQLSTATE ‘02000‘ SET s=1;

SET str = "--";
#打开游标

OPEN cursor_name;

#获取游标当前指针的记录,读取一行数据并传给变量

FETCH cursor_name INTO costTypeId,costTypeCode,acctTypeId,bizZhyCode,stationCode;
#开始循环,判断是否游标已经到达了最后作为循环条件

WHILE s <> 1 DO
SET str = CONCAT(str,numIndex);

INSERT INTO `sys_cost_item`(`cost_item_name`,`cost_item_desc`,`cost_type_id`,`cost_type_code`,`status`,`is_preset`,`acct_type_id`,`price`,`unit`,`biz_zhy_code`,`server_station_code`,`create_time`,`create_user_id`,`last_update_user_id`,`update_time`,`last_update_no`,`extra_param`,`modify_rule`) VALUES
(‘无‘,NULL,costTypeId,costTypeCode,1,2,acctTypeId,‘0.00‘,1,bizZhyCode,stationCode,NULL,NULL,NULL,‘2016-08-24 16:02:53‘,0,‘‘,1);
#读取下一行的数据
FETCH cursor_name INTO costTypeId,costTypeCode,acctTypeId,bizZhyCode,stationCode;

END WHILE;

#关闭游标

CLOSE cursor_name;

SELECT str;
#语句执行结束
END$$

DELIMITER ;

创建完之后,调用方法 call add_costItem();

以后每次都会执行存储过程的结果,可以现在编辑器中点击创建存储过程,然后把内容复制到begin到end之间

说明:由于规范有的公司可能禁用存储过程,可以提前写个简单的存储过程试试

参考:http://shitou521.iteye.com/blog/1069027

时间: 2024-09-30 06:23:35

mysql客户端添加存储过程的相关文章

Ansible 从MySQL数据库添加或删除用户

mysql_user - 从MySQL数据库添加或删除用户. 概要 要求(在执行模块的主机上) 选项 例子 笔记 状态 支持 概要 从MySQL数据库添加或删除用户. 要求(在执行模块的主机上) MySQLdb的 选项 参数 需要 默认 选择 注释 append_privs (1.4 加入) no no yes no 将priv定义的权限附加到此用户的现有权限,而不是覆盖现有的权限. check_implicit_admin (1.3 加入) no no yes yes 检查mysql是否允许以

MySql中创建存储过程

MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句.特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗.现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高. 一.MySQL 创建存储过程 "pr_add" 是个简单的

MySQL数据库的存储过程(一)

MySQL数据库的存储过程常规create routinealterexecutesecuritydefiner 在创建存储过程的时候默认是选中相应的数据库(use db_name)所以在编写存储过程时候就不能在存储过程之中编写此语句 delimiter客户端 使用delimiter客户端设置结束符delimiter //主要是为了避免与存储过程中的SQL语句的结束符冲突 创建一个程序或者一个函数create procedure | function 学习存储过程首先我们应该学会最基本的几个操作

无法用指定MySQL客户端登陆服务器的案例分析

习惯了二进制安装MySQL,今天心血来潮想装个RPM包的MySQL玩玩,没想到一装还真碰到了点问题,下面把碰到的问题分享一下 首先去官网下载安装包,地址是:http://downloads.mysql.com/archives/community/ 根据自己的系统版本和平台选择要安装的包,我的测试机是32 bit的 RHEL 5.3 我选择的是5.0.96,挺老的版本了,需要下载一个server包和一个client包,分别为: MySQL-server-community-5.0.96-1.rh

linux 安装php时不安装mysql客户端或者服务端

php5.3以上就不要安装mysql 客户端,就可以使php支持mysql截取官网  “对于 php-5.3.0或更新版本,mysqli 默认使用Mysql Native Driver作为驱动. 这个驱动比libmysql会有一些优势, --with-mysql=mysqlnd  需要在./configure 时添加  --with-mysql=mysqlnd这个映射. ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apa

pd导出sql和mysql客户端导入sql文件时注意事项

1.使用PowerDesigner导出sql文件时(附导出步骤): (1)首先切换数据库,如下图,以MySQL为例: (2)开始生成sql,如下图所示,保存为sql文件: (3)此时发现导出的sql没有注释,这时按下图方法进行添加comment列: (4)然后再按前两个步骤导出即可,至此,导出问题解决: 2.使用MySQL客户端导入sql文件时: (1)因为用pd默认保存的文件编码格式为ANSI,再这种格式下导入sql后发现注释没有导入成功: (2)很自然的反应时修改编码,这时用记事本打开另存为

mysql数据类型及存储过程

转自:http://www.cnblogs.com/mark-chan/p/5384139.html 存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成.当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数

mysql 定时任务和存储过程

mysql 定时任务和存储过程 最近在做日志系统,中间用到了 mysql, 其中有一个要求: 把数据库中 7天之后的日志清除了.看到 mysql 也支持 定时任务.于是就用 mysql 来做了.下面就是这次使用代码. 存储过程 use webapm; --创建存储过程 DELIMITER $$ CREATE PROCEDURE `p_del_slow`(IN `date_inter` INT) BEGIN DELETE FROM slow_duration WHERE (TO_DAYS(NOW(

mac - MAC电脑安装Mysql服务器和Navicat for mysql客户端

1.下载链接 Navicat for mysql客户端 链接: https://pan.baidu.com/s/1dGbzgbR 密码: i43g Mysql服务器 链接: https://pan.baidu.com/s/1qYE01BI 密码: qz9s 2.安装mysql和Navicat Navicat for mysql,下载下来的本身就是个app,不用再次安装,直接拖拽到应用程序即可 安装mysql,按照安装步骤安装即可,安装时会出现如下弹框,一定要记住,5.7之后的版本默认有个临时的密