`
rock
  • 浏览: 58185 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql存储过程使用总结

    博客分类:
  • DB
阅读更多

create PROCEDURE calculateusedsize(in dbname varchar(128))
  BEGIN   

    declare recordcount int(12);
    declare tn varchar(128);   
    declare size int(12);   
    declare usedsize int(12);
    DECLARE done INT DEFAULT 0;  
    DECLARE fetchtablecur CURSOR FOR SELECT qc.tablename , qc.size FROM system.columnsize qc;  
  
    declare continue handler for SQLSTATE '02000' set done = 1;
     

/*先删除再新建表,以后操作为insert*/
    set @dropquotatableSQL= CONCAT('DROP TABLE IF EXISTS ',dbname,'.usedtable');
    prepare s1 from @dropquotatableSQL;
    execute s1 ;
    deallocate prepare s1;
    set @dropquotatableSQL=null;   

    set @createquotatableSQL= CONCAT('CREATE TABLE ',dbname,'.usedtable (Id int(11) NOT NULL auto_increment,
         tablename varchar(128) NOT NULL ,
         usedsize int(32) NOT NULL,
         PRIMARY KEY  (Id)
         )');
    prepare s1 from @createquotatableSQL;
    execute s1 ;
    deallocate prepare s1;
    set @createquotatableSQL=null;
       
     



OPEN fetchtablecur;
 
REPEAT
    FETCH fetchtablecur INTO tn, size;
       
    IF NOT done THEN   

       #在动态sql中,将查询结果赋值给变量
       set @v_sqlcounts = concat('select count(1) into @recordcount from ',dbname,'.',tn); 
       set @countsSelectSQL := @v_sqlcounts;
       prepare s1 from @countsSelectSQL;        
       execute s1; 
       deallocate prepare s1;        
       set @v_sqlcounts =null;
       set @countsSelectSQL =null;
       set recordcount = @recordcount;
       select recordcount*size into usedsize;
     
       set @insertSQL= CONCAT('insert into ',dbname,'.usedtable(tablename,usedsize) values(\'',tn,'\',',usedsize,')');
       prepare s1 from @insertSQL;
       execute s1 ;
       deallocate prepare s1;
       set @insertSQL=null;      

    END IF;
UNTIL done END REPEAT;
 
  CLOSE fetchtablecur;


  END

分享到:
评论

相关推荐

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    mysql存储过程调试工具

    总结来说,"Debugger for MySQL"这样的工具是MySQL存储过程开发和维护的有力助手,它提供了断点调试、变量查看等核心功能,使得复杂存储过程的调试工作变得更加简单和高效。熟练掌握这类工具的使用,将极大地提升...

    MySQL存储过程完整版使用代码示例

    资源包中囊括了MySQL数据库中的存储过程的...该资源下所有内容都是本人的日常软件开发经验总结,对于初学者使用MySQL存储过程的程序员具有重要参考价值,问大家要10分是不过分的,用过就知道了,欢迎大家下载参考及使用

    mysql存储过程实现分页

    根据题目提供的信息,下面将详细介绍如何使用MySQL存储过程实现分页功能: ```sql CREATE PROCEDURE paging( IN name VARCHAR(1024), // 表名 IN fields VARCHAR(1024), // 查询字段 IN size INT, // 每页显示的...

    MySql 分页存储过程以及代码调用

    总结来说,MySQL的分页存储过程提供了一种高效、可复用的方式来处理分页查询,减少了直接使用OFFSET可能导致的性能问题。通过创建存储过程并在应用程序中调用,我们可以更好地控制分页逻辑,提高查询速度,提升用户...

    MySQL存储过程基础教程.pdf

    本教程提供了MySQL存储过程的基础知识,包括其定义、使用原因、结构、作用域、参数、错误处理、安全性、函数、元数据、编写技巧以及安装和配置方法。掌握这些知识对于开发者而言,将能够有效利用存储过程来提升...

    Mysql存储过程和函数

    本文将详细介绍MySQL存储过程与函数的相关概念、创建方法以及使用技巧。 #### 二、存储过程与函数的区别 - **存储过程**(Stored Procedure):是一系列SQL语句的集合,它可以接受输入参数并返回多个结果集和...

    php中调用MySQL存储过程

    ### PHP中调用MySQL存储过程 #### 背景与目的 在Web开发中,PHP是一种广泛使用的服务器端脚本语言,它与MySQL数据库结合得非常紧密,为开发者提供了强大的功能来处理数据。存储过程是预编译好的SQL代码块,它们...

    mysql存储过程简单应用编写

    在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。 首先,让我们了解一下什么是存储过程。存储过程是一组为了完成特定功能的SQL语句集...

    MySQL实现创建存储过程并循环添加记录的方法

    总结一下,MySQL中的存储过程是执行重复任务和复杂逻辑的强大工具。通过创建存储过程并结合循环结构,可以实现批量添加记录的功能。理解并熟练掌握这一技术,对于数据库管理和开发工作来说是非常有价值的。

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    综上所述,实验报告详细介绍了MySQL中存储过程的创建与调用,使用游标、异常处理及参数传递等高级特性。通过这些内容,读者能够更好地理解MySQL数据库中存储过程和函数的高级用法,提高数据库编程能力。

    kettle批量导出mysql存储过程

    总结来说,Kettle批量导出MySQL存储过程涉及到的关键知识点有:Kettle的数据流设计、MySQL的存储过程、数据库元数据获取、循环控制、文件生成和命令行脚本的创建。熟练掌握这些技能,将有助于我们在数据库管理和维护...

    MySQL数据库存储过程

    同时,`mysql存储过程教程.pdf`很可能是一个详细的指南,涵盖了存储过程的基础概念、语法、高级特性以及实例。通过阅读这份教程,读者可以学习如何创建、修改、删除存储过程,理解如何在存储过程中使用变量、游标、...

    \MySQL 5.0 存储过程.pdf

    根据提供的文档信息,本文将深入解析《MySQL 5.0 存储过程》这一主题,重点探讨存储过程的概念、特点以及在 MySQL 5.0 中的...对于想要深入了解 MySQL 数据库应用开发的人来说,掌握存储过程的使用是非常重要的一步。

    mysql存储过程

    总结,MySQL存储过程是数据库开发中的重要工具,它能够提升系统性能、简化代码结构并增强安全性。通过熟练掌握存储过程的创建、调用和管理,开发者可以更高效地处理复杂的数据操作任务。在实际项目中,应根据需求...

Global site tag (gtag.js) - Google Analytics