1
執行以下存儲過程時,出現「未知表'matched_temp'」等錯誤。將數據備份到另一個表中
DELIMITER $$
DROP PROCEDURE IF EXISTS `apms`.`sp_partition_parkinout` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_partition_parkinout`()
BEGIN
DROP TEMPORARY TABLE IF EXISTS MATCHED_TEMP;
CREATE TEMPORARY TABLE MATCHED_TEMP AS
SELECT ID FROM CARDINOUT
WHERE (`State` = 2) AND
(ID NOT IN (SELECT ID FROM CARDINOUT_MATCHED))
LIMIT 200;
INSERT INTO CARDINOUT_MATCHED
SELECT * FROM CARDINOUT
WHERE ID IN (SELECT ID FROM MATCHED_TEMP);
DELETE FROM CARDINOUT
WHERE ID IN (SELECT ID FROM MATCHED_TEMP);
END $$
DELIMITER ;
我想定期執行它以將cardinout中的數據移入cardinout_matched。將cardinout保留爲儘可能小的目的,因爲cardinout經常被查詢。
有沒有其他的選擇來完成這個?
感謝 Botem
我使用MySQL連接器6.2.2網絡。每當我收到錯誤如「超時過期,操作完成之前超時時間或服務器沒有響應」。我手動執行存儲過程,並得到像「未知表'matched_temp'」的錯誤。 – 2012-03-03 03:59:54