
MySQL 存储过程 & 函数 & 触发器
文章平均质量分 73
kf_panda
这个作者很懒,什么都没留下…
展开
-
MySQL 存储过程中的循环
以下是常用的三种循环方式WHILE……DO……END WHILEREPEAT……UNTIL END REPEATLOOP……END LOOP1、 WHILE……DO……END WHILE 示例DROP PROCEDURE IF EXISTS p_while;delimiter // create procedure p_while()begindecl原创 2015-11-23 15:09:32 · 502 阅读 · 0 评论 -
MySQL不支持动态表名
今天写一个数据迁移的存储过程,用到了动态表名,发现MYSQL不支持直接使用变量做表名。然后就用下面的方式来做了。DROP PROCEDURE IF EXISTS p_transfer_data;delimiter // CREATE PROCEDURE p_transfer_data()begin declare v_dbname varchar(100) default da原创 2015-11-23 15:47:33 · 2769 阅读 · 0 评论 -
MySQL 存储过程之游标
BEGIN DECLARE Done INT DEFAULT 0; DECLARE id_ INT; DECLARE name_ VARCHAR(30); /* 声明游标 */ DECLARE v_cur CURSOR FOR SELECT id_,name_ FROM t; /* 异常处理 */ DECLARE CONTINU原创 2015-11-23 16:06:55 · 443 阅读 · 0 评论 -
MySQL 序列生成函数
由于效率上的需求,我们需要批量入库。我们有个业务表,分成了主表tab和详情表tab_detail。以前的做法需要一条一条插入,主键自增序列自动生成,并且每次插入后再利用last_insert_id这样的方式取出刚插入的主表tab的主键,然后再插入详情表tab_detail。项目还没有上线,不过应该会比较慢。建议开发自己生成序列。下面是我用函数实现的序列生成器。---my_sequenc原创 2015-08-10 14:33:02 · 3895 阅读 · 0 评论 -
MySQL 按月给表分区存储过程
drop procedure if exists p_add_part_month;DELIMITER // create procedure p_add_part_month(tab_name varchar(50),dtime datetime)begindeclare p1_name varchar(50) default concat('p_',date_format(dtime原创 2015-11-26 20:04:23 · 3006 阅读 · 0 评论 -
MySQL准备语句
MYSQL4.1及更高版本支持服务器端准备语句(Prepared Statements), 它使用增强的二进制客户端/服务器协议在客户端和服务器之间高效的发送数据,可以通过支持这种行协议的编程库来访问准备语句,列入MYSQL CAPI,MYSQL Connector/J和MYSQL Connector/NET 为JAVA和.NET提供了同样的访问接口。它也有SQL语言的访问接口。创建准备语句时原创 2015-12-29 15:23:23 · 734 阅读 · 0 评论