2013-03-12 41 views
0

這裏是這樣的情況:我在一臺機器上丟棄了我的數據庫結構,試圖恢復第二個數據庫。但在恢復數據庫錯誤發生的過程中,我不知道該部分的SQL代碼有什麼問題。程序中Mysql恢復db語法錯誤

這裏的MySQL錯誤:

ERROR 1064 (42000) at line 5846: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=HEAP; 
    WHILE TRUE DO 
     SET _paramList = TRIM(_paramList); 
     ' at line 13 

需要補充,我甩在MySQL 59年5月1日的數據庫結構,並試圖在30年5月5日恢復。

我已經嘗試在mysql轉儲和恢復,搜索互聯網沒有成功兼容的選項。

編輯:

這裏的整個過程:

DELIMITER ;; 
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `ws_core_parameters`(IN is_proc_name CHAR(64), IN is_db_name CHAR(64)) 
BEGIN 
    DECLARE _paramList VARCHAR(800); 
    DECLARE _parameter VARCHAR(100); 
    SELECT 
     CAST(a.param_list AS CHAR(800)) 
    INTO 
     _paramList 
    FROM mysql.proc a 
    WHERE a.name = is_proc_name 
     AND a.db = is_db_name 
    LIMIT 1; 
    CREATE TEMPORARY TABLE system_proc.__parameters (s_parameter VARCHAR(20)) TYPE=HEAP; 
    label: WHILE TRUE DO 
     SET _paramList = TRIM(_paramList); 
     IF(COALESCE(_paramList, '') = '') THEN 
      LEAVE label; 
     END IF; 
     SET _parameter = SUBSTRING_INDEX(_paramList, ',', 1); 
     SET _paramList = SUBSTR(_paramList, LENGTH(_parameter)+2); 
     INSERT INTO system_proc.__parameters (s_parameter) 
      VALUES (
       TRIM(
        SUBSTRING_INDEX(
         SUBSTR(_parameter, 
          LENGTH(
           SUBSTRING_INDEX(_parameter, ' ', 1))+2), ' ', 1))); 
    END WHILE label; 
    SELECT 
     SUBSTR(s_parameter, 1-(
      LENGTH(s_parameter))) AS s_parameter 
    FROM system_proc.__parameters WHERE s_parameter != ''; 
    DROP TABLE system_proc.__parameters; 
END */;; 
+0

請張貼您的程序代碼。 – 2013-03-12 10:16:42

回答