`

mysql存储过程demo

阅读更多

DROP PROCEDURE IF EXISTS `nnb_check_procedure`;
delimiter $$
CREATE PROCEDURE nnb_check_procedure()
BEGIN 
        declare p_id varchar(50);
        declare p_est_date varchar(20);
        declare p_content varchar(10);
        declare done int(10);
        declare flag int(2);
        declare feeCodeCursor cursor for select id from nnb_dr_xwqy_info;
        declare continue handler for not found set done=1;
        set done=0;
        set @year = year(NOW());
        set @month = month(NOW());
        set @day = day(now());
        set @temptotal=0;
        set @i=0;

        open feeCodeCursor;
        loop_label:LOOP

        fetch feeCodeCursor into p_id;
        if done = 1 then
            leave loop_label;
        else
            set flag = 0;
        end if;
       
        select ifnull(est_date,concat(cast(@year AS CHAR),'-06-30 00:00:00')),content into p_est_date,p_content from nnb_dr_xwqy_info where id=p_id order by est_date desc;
       
        set @nfc = TIMESTAMPDIFF(YEAR,DATE_FORMAT(p_est_date,'%Y-%m-%d'),concat(@year,'-06-30'));
        if (@nfc<1) then
            insert into nnb_checkresult values(p_id,1);
        elseif ((@nfc>1 or @nfc=1) and @nfc<2) then
            if (@month<7) then
                insert into nnb_checkresult values(p_id,1);
            else
                    if (p_content='个体') then
                        select count(1) into @temptotal from nnb_gt_djzgjgsh where zch=p_id and njrq like concat(@year-1,'%');
                        if(@temptotal>0) then
                            insert into nnb_checkresult values(p_id,1);
                        else
                            insert into nnb_checkresult values(p_id,0);
                        end if;
                    else
                        select count(1) into @temptotal from nnb_djzgjgsh where zch=p_id and njrq like concat(@year-1,'%');
                        if(@temptotal>0) then
                            insert into nnb_checkresult values(p_id,1);
                        else
                            insert into nnb_checkresult values(p_id,0);
                        end if;
                    end if;
            end if;
        else
            if(@month<7) then
                if (p_content='个体') then
                    select count(1) into @temptotal from nnb_gt_djzgjgsh where zch=p_id and njrq like concat(@year-2,'%');
                    if(@temptotal>0) then
                        insert into nnb_checkresult values(p_id,1);
                    else
                        insert into nnb_checkresult values(p_id,0);
                    end if;
                else
                    select count(1) into @temptotal from nnb_djzgjgsh where zch=p_id and njrq like concat(@year-2,'%');
                    if(@temptotal>0) then
                        insert into nnb_checkresult values(p_id,1);
                    else
                        insert into nnb_checkresult values(p_id,0);
                    end if;
                end if;
            else
                    if (p_content='个体') then
                        select count(1) into @temptotal from nnb_gt_djzgjgsh where zch=p_id and njrq like concat(@year-1,'%');
                        if(@temptotal>0) then
                            insert into nnb_checkresult values(p_id,1);
                        else
                            insert into nnb_checkresult values(p_id,0);
                        end if;
                    else
                        select count(1) into @temptotal from nnb_djzgjgsh where zch=p_id and njrq like concat(@year-1,'%');
                        if(@temptotal>0) then
                            insert into nnb_checkresult values(p_id,1);
                        else
                            insert into nnb_checkresult values(p_id,0);
                        end if;
                    end if;
            end if;
        end if;
        set @i=@i+1;
        if @i%1000=0 then
            commit;
        end if;
        end LOOP;
        commit;
        close feeCodeCursor;
end $$ 
delimiter ;

分享到:
评论

相关推荐

    java存储过程demo

    java mysql存储过程demo

    存储过程Demo.zip

    本资料“存储过程Demo.zip”提供了一个完整的存储过程示例,同时涉及到事件触发机制,这对于理解和应用MySQL存储过程至关重要。 1. **存储过程的基本概念**: 存储过程是数据库中存储的一组预编译的SQL语句,可以...

    MySQL存储过程实例教程

    ### MySQL存储过程实例教程 #### 存储过程概念与优势 存储过程,作为数据库中一种预编译的SQL语句集合,旨在实现特定功能并存储于数据库内,用户仅需指定其名称及必要参数即可调用执行。这种设计极大地简化了...

    MySQL 存储过程

    ### MySQL存储过程详解 #### 一、MySQL存储过程概述 MySQL 存储过程是一种预编译的 SQL 代码块,可以包含复杂的逻辑控制结构。它能够接收输入参数、设置输出参数,并通过调用来执行一系列数据库操作。存储过程提高...

    MYSQL的存储过程实例文档

    ### MySQL存储过程详解 #### 一、存储过程概述 存储过程是一种特殊类型的SQL代码集合,它们预先被编译并存储在数据库服务器上。用户可以通过指定存储过程名称并提供必要的参数来执行这些存储过程。这种机制提供了...

    mysql 存储过程嵌套循环demo

    mysql存储过程,REPEAT+while 实现嵌套循环。循环内嵌套循环。

    12.MySQL存储过程1

    MySQL存储过程是数据库管理系统中的一种重要特性,它允许开发者预定义一组SQL语句,并将其作为一个单元进行存储和执行。在MySQL 5.0版本以后,存储过程得到了广泛的支持。存储过程的主要优点在于它可以提高代码的...

    MySQL总结

    例如,`MySql存储过程Demo.txt`可能包含以下内容: ```sql CREATE PROCEDURE example_procedure(IN param1 INT, OUT param2 VARCHAR(50)) BEGIN SELECT column1 INTO param2 FROM table WHERE condition = param1;...

    MySQL存储过程实现树的遍历

    利用MySQL存储过程实现树的初始化、插入、深度遍历、按层遍历、删除操作。可以作为学习存储过程的笑demo

    web三层无存储过程分页Demo

    - 在数据库层面,无存储过程的分页通常通过SQL的`LIMIT`(MySQL)或`OFFSET/FETCH`(SQL Server)等关键字实现。在业务逻辑层,需要计算出正确的页码和每页大小,然后传递给数据访问层执行相应的SQL查询。 - 前端...

    mysql存储过程

    ### MySQL存储过程详解 #### 一、存储过程概述 存储过程是预编译好的SQL语句集合,可以在数据库中创建并保存,通过调用名称来执行。存储过程能够提高应用程序性能,减少网络流量,增强安全性,并提供更强大的数据...

    导出表结构到Excel 导出存储过程、序列、函数脚本(sqlserver、mysql) Demo下载

    本资源对应个人的博文“导出表结构到Excel 导出存储过程、序列、函数脚本(sqlserver、mysql)”下载资源 博文链接 https://blog.csdn.net/wanghuiWHI/article/details/90288609

    MqSQL存储过程在项目中的运用demo.rar

    MySQL存储过程是数据库编程的重要组成部分,它允许开发者在数据库中封装一组复杂的SQL语句,以实现数据处理的逻辑。在项目开发中,尤其是在基于SpringBoot的Web应用中,使用存储过程可以提高性能、减少网络通信并...

    MySQL数据库课堂笔记 + MySQL-DEMO

    本资源包含了“MySQL数据库课堂笔记”和一个名为“MySQL-DEMO”的实践项目,旨在帮助学习者深入理解MySQL的基本概念、操作及实际应用。 “MySQL数据库课堂笔记”可能涵盖了以下知识点: 1. **数据库基础**:介绍...

    Quartz2.2.1java任务持久(mysql)存储demo以及资料

    本文将深入探讨如何使用Quartz2.2.1在Java环境中配置MySQL作为任务的持久化存储,并提供一个简单的demo作为参考。 首先,我们需要了解Quartz的持久化机制。Quartz将任务和触发器的信息存储在数据库中,当应用程序...

    执行存储过程的代码和数据库脚本

    本文将围绕“执行存储过程的代码和数据库脚本”这一主题展开,通过分析提供的Demo.sql文件和执行存储过程的相关知识,帮助初级学习者更好地理解和应用这些概念。 首先,让我们了解一下存储过程的基本概念。存储过程...

    MySQL存储过程中游标循环的跳出和继续操作示例

    最近遇到这样的问题,在MySQL的存储过程中,游标操作时,需要执行一个conitnue的操作.众所周知,MySQL中的游标循环操作常用的有三种,LOOP,REPEAT,WHILE.三种循环,方式大同小异.以前从没用过,所以记下来,方便以后查阅. 1....

    java连接Mysql数据库Demo

    现在,我们有一个简单的Java连接MySQL的Demo,但实际开发中,你可能需要处理异常、优化SQL语句、使用存储过程、进行事务控制等。在深入学习JDBC的同时,也要关注数据库设计和SQL优化,这将对你的开发工作大有裨益。 ...

    Mysql+分页-DEMO.rar

    例如,通过缓存已加载的数据来减少不必要的数据库查询,或者使用存储过程来提高查询效率。 总的来说,"Mysql+分页-DEMO.rar" 提供了一个在Delphi7环境下使用MySQL实现分页查询的实例,这对于学习如何在桌面应用程序...

    springboot-mybatis-mysql-redis demo

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...

Global site tag (gtag.js) - Google Analytics