mysql 存储过程导入 windows_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  ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值