mysql从一个表向另一个表转移数据的存储过程
delimiter $$
use `sms`$$
drop procedure if exists `sendsmsprocs`$$
create definer=`root`@`localhost` procedure `sendsmsprocs`(numberarrayid char(32),longsmsid char(32))
begin
/*创建临时表 放要下发的临时组数据*/
create temporary table tmp_table(phonenumber char(11))type = heap;
truncate table tmp_table;
create unique index tmp_table_index on tmp_table(phonenumber);
/* 放入临时组数据*/
insert into tmp_table select phonenumber from smsallphone where smsallphone.numberarrayid = numberarrayid;
select count(*) from tmp_table;
/*创建临时表 查询出大发表中已经存在的号码 */
create temporary table tmp_table2(phonenumber char(11)) type = heap;
truncate table tmp_table2;
create unique index tmp_table2_index on tmp_table2 (phonenumber);
/* 放入临时数据 待发表中已经存在的用户号码 */
insert into tmp_table2 select tmp_table.phonenumber from tmp_table,smssystem where tmp_table.phonenumber= smssystem.phonenumber ;
select count(*) from tmp_table2;
/* 删除已经存在的待发表中的数据*/
delete from tmp_table where tmp_table.phonenumber in (select phonenumber from tmp_table2);
insert into smssystem select replace(uuid(),'-',''),longsmsid,phonenumber,sysdate(),sysdate(),0,0,0 from tmp_table;
end$$
delimiter ;
bitscn.com