两天前同事的一个日志模块事件备份老是报内存溢出错误,正好有点时间研究了一下。日志的备份时查询所有的记录,写到一个文件了。(虽然从实用的角度,数据库备份有很多中非常有效方法,请先不要鄙视这种做法:尊重真理一样尊重需求才是一个好的工程师)
Mysql触发器:
当对表格进行某张表格进行插入、更新、删除的之前、之后对数据库进行一些操作,比如:添加用户的时候记录插入一条日志记录到日志表。
Mysql存储过程:
存储过程是一段复杂的SQL语句,可以包装成函数的形式,让后代码中只要回调这个函数就行,可以实现分页、数据备份什么的。
这里只是一个简单的笔记,相关的资料网上很多,建议边用边查。
select * into outfile "d:\\Windows.txt" from t_windows;
LOAD DATA INFILE "d:\\Windows.txt" INTO TABLE t_windows;
完整的分页存储过程:
CREATE PROCEDURE p_pageList (
m_pageNo int , //页数
m_perPageCnt int , //每页的记录数
m_column varchar(1000) , //查询的字段
m_table varchar(1000) , //要分页的表
m_condition varchar(1000), //分页条件
m_orderBy varchar(200) , //分组
out m_totalPageCnt int //总记录数
)
BEGIN
SET @pageCnt = 1; // 总记录数
SET @limitStart = (m_pageNo - 1)*m_perPageCnt; //起始记录数
SET @limitEnd = m_perPageCnt; //每页记录数
SET @sqlCnt = CONCAT('select count(1) into @pageCnt from ',m_table); // concat 字符串函数,这条语句很关键,用来得到总数值
SET @sql = CONCAT('select ',m_column,' from ',m_table); //查询的字段
IF m_condition IS NOT NULL AND m_condition <> '' THEN
SET @sql = CONCAT(@sql,' where ',m_condition);
SET @sqlCnt = CONCAT(@sqlCnt,' where ',m_condition);
END IF;
IF m_orderBy IS NOT NULL AND m_orderBy <> '' THEN
SET @sql = CONCAT(@sql,' order by ',m_orderBy);
END IF;
SET @sql = CONCAT(@sql, ' limit ', @limitStart, ',', @limitEnd); //查询语句
PREPARE s_cnt from @sqlCnt; //预定义语句
EXECUTE s_cnt; //执行
DEALLOCATE PREPARE s_cnt; //释放资源
SET m_totalPageCnt = @pageCnt; //总记录数
PREPARE record from @sql;
EXECUTE record;
DEALLOCATE PREPARE record;
END
每个人的需求不同,不要指望拷贝下去就可以使用,仿照格式套路自己多调式调式。
分享到:
相关推荐
Mysql存储过程游标触发器
mysql的存储过程、触发器详细教程,适合入门
一、实验目的 1.了解存储过程的概念、优点 2.熟练掌握创建存储过程的方法 3.熟练掌握存储过程的调用方法 4.了解触发器的概念、优点 5.掌握触发器的方法和步骤 6.掌握触发器的使用
在数据库中存储过程和触发器的讲解,以及一些例子
MySQL数据库函数,触发器,存储过程的视频课程,通俗易懂
mysql高级部分--包含索引建立优化_函数_存储过程_触发器_及游标
mysql触发器+存储过程
MySQL SQL高级特性-存储过程-触发器-事务,非常不错,感谢
mysql经典教程+mysql存储过程讲解 重点讲解Mysql的存储过程,触发器,游标的使用 对mysql不太熟的朋友可以好好学习。。。
mysql函数、存储过程、触发器、游标
MYSQL触发器与存储过程.ppt
MySQL触发器、存储过程、自定义函数、视图简单示例
MySQL实验报告5(存储过程与函数)(1)(1).pdf
MySQL系列—-存储过程、触发器存储过程创建一个存储过程,使得结果输出两个数的和执行存储过程,计算38加上26的和触发器在student表中创建删除触发器ctr_del查看触发器ctr_del的一般信息和文本信息删除学号为...
MYSQL数据库的索引、视图、触发器、游标和存储过程
这些MySQL面试题涵盖了数据库设计、存储过程和触发器、数据库复制和集群等方面的知识点,测试了面试者的MySQL数据库基础知识、问题解决能力和实际应用能力。 通过回答这些问题,面试者可以展现自己熟练掌握MySQL...
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发...有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
mysql存储过程编程教程: MySQL 存储过程编程基础 -- 指南,基本语句,存储过程中的 SQL 和错误处理 创建 MySQL 存储过程程序 -- 事务处理,内建函数,存储过程函数和触发器 在应用程序中使用 MySQL 存储...
Starting with the 10g release, Oracle now offers a new interface, known as JDWP, for debugging PL/SQL and stored Java procedures. Toad fully supports both interfaces, but we recommend you continue to ...
我们已经去掉了关于触发器的错误的语句,但是仍旧有很多旧版本的手册在网上,举个例子,这是一个德国的Url上的: http://dev.mysql.com/doc/mysql/de/ANSI_diff_Triggers.html. 这个手册上说触发器就是存储过程,...