易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql存储过程 例子 游标cursor 循环嵌套 事物

昨天要mysql中写存储过程发现网上有关于cursor循环且套的资料很少,现发出本人写的例子,希望能对大家有帮助.
看招:
DELIMITER $$
USE `ad_db`$$
DROP PROCEDURE IF EXISTS `test`$$
CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
     /** CPA效果数 */
DECLARE _tmpId1 INT; 
DECLARE _tmpId2 VARCHAR(5000);
DECLARE not_found INT DEFAULT 0 ;-- 是否未找到数据 标记
DECLARE  cursor1 CURSOR FOR  SELECT id from fhtest2  ; -- 测试用无业务关系
DECLARE  cursor2  CURSOR FOR SELECT test from  fhtest2 ;-- 测试用无业务关系
DECLARE CONTINUE HANDLER FOR NOT FOUND SET not_found = 1; -- 如果未找到数据 将标记改为不可用
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;  -- 异常跳出
START TRANSACTION;    -- 启动事物
INSERT INTO fhtest2 (test)  VALUES (' 开始1 ');
INSERT INTO fhtest2 (test)  VALUES (' 开始2 ');
OPEN cursor1; -- 启动游标1
WHILE not_found = 0 DO 
  FETCH cursor1 INTO _tmpId1;-- 获取数据
  IF NOT not_found THEN
OPEN cursor2; -- 启动游标2
WHILE not_found = 0 DO
  FETCH cursor2 INTO _tmpId2;-- 获取数据
  IF NOT not_found THEN
INSERT INTO fhtest2 (test)  VALUES (CONCAT(' id + test=   ',_tmpId1,_tmpId2));
  END IF ;
END WHILE ;
CLOSE cursor2;
SET not_found = 0 ; -- 将 标记改为0即可用 否则只执行一次,以为内部循环执行完成后 not_found = 1,所有要将其置为0
  END IF;          
END WHILE;
CLOSE cursor1;
COMMIT;
    END$$
DELIMITER ;


相关文档:

mysql 时间段查询

24小时内记录(即86400秒)
$sql="SELECT video_id,count(id)as n from `rec_down` WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(add_time)<=86400 group by video_id order by n desc ";
$sql="select a.id,a.title,b.n from video_info a,(".$sql.")b where a.id=b.video_id order by n desc limit 20";
N天内记录 ......

JDBC 简单的Mysql连接

/*演示一个JDBC程序,从Mysql的LMD数据库中读出表admin的一个信息*/
import java.sql.*;
public class TestMysqlConnection {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = ......

DedeCMS部署 怎样去部署Apache+Mysql+PHP(LAMP)?

 声明:部署DedeCMS,在网上搜了很多资料,包括这个论坛,几乎没有发现在linux下部署的现成资料可以参考。
             遂,自己把整个部署过程中一些重要的点记录下来,一是算做自己的劳动成果,同时,期望对曾经和我一样迷茫,不知如何部署           ......

Now it's MySQL's turn...

Some problems encounted this afternoon, when trying to setup/test mysql capabilities on hypnos and virgil.
1.ERROR 2003 (HY000): Can't connect to MySQL server on 'server-name' (111)
access locally (i.e. from localhost) is fine, when trying remotely got this error. when tried with mysql++ library, ......

Mysql数据库表名空格处理

今天使用PowerDesigner搭建了一个小项目,最后执行完SQL脚本时才发现有2张表的表名中间多了一个空格,查完资料,最后并惊奇发现映射文件竟然多了2个`,就是shift+数字键1的那个,也就是他在脚本是这样写的:
create table `table1`(....);
问题解决。
PS:从网上找到的资料:
作为一个Oracle DBA,MySQL很多SQL语法与Orac ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号