zoukankan      html  css  js  c++  java
  • mysql存储过程导入表

    运用存储过程,把用户表一数据导入用户表二

    DELIMITER @@
      CREATE PROCEDURE imp_to_user2()
      BEGIN

        – 声明一个标志done, 用来判断游标是否遍历完成

        DECLARE done INT DEFAULT FALSE;

        – 声明一个变量,用来存放从游标中提取的数据 
        – 特别注意这里的名字不能与由游标中使用的列明相同,否则得到的数据都是NULL 
        DECLARE lname VARCHAR(20) DEFAULT NULL;
        DECLARE lage INT(5) DEFAULT 0;

        – 声明游标对应的 SQL 语句
        DECLARE cur CURSOR FOR SELECT NAME,age FROM t_user;

        – 在游标循环到最后会将 done 设置为 TRUE
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;


        – 执行查询 
        OPEN cur;

        – 遍历游标每一行 
        read_loop: LOOP

          – 提取游标里的数据
          FETCH cur INTO lname,lage ;
          – 声明结束的时候
          IF done THEN
          LEAVE read_loop;
          END IF;
          --定义全局变量@num记录 要同步到的表是否已有该名字
          SELECT COUNT(*) INTO @num FROM t_user2 u WHERE u.name=lname;
          --如果该名字不存在,则同步
          IF @num=0 THEN
          INSERT INTO t_user2(id,NAME, age) VALUES( NULL,lname,lage);
          END IF;

        END LOOP;

        – 关闭游标 
        CLOSE cur;

      END
    @@
    DELIMITER  ;

  • 相关阅读:
    python+selenium 定位隐藏元素
    数据库的几种去重方法总结
    用例设计方法与测试实践相结合思路
    边界值分析法
    等价类分析法
    CYQ.Data 支持分布式数据库(主从备)高可用及负载调试
    linux下rpm包安装、配置和卸载mysq
    linux命令 rpm
    Linux命令之rpm
    Linux rpm命令详解
  • 原文地址:https://www.cnblogs.com/smilehq/p/9116788.html
Copyright © 2011-2022 走看看