mysql從一個表向另一個表轉移數據的存儲過程 DELIMITER $$ www.2cto.com 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); www.2cto.com /* 放入臨時組數據*/ 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 ;