2016-08-18 44 views
0

我創建過程,其選擇在具有多於100000個記錄courser.member_id member_id Mysql的程序錯誤。 我已經宣佈了一個變量我在哪裏存儲一個成員ID在時間更新與下一個查詢。而執行它

任何人都可以解決這個..? 過程如下: -

 DELIMITER // 
    DROP PROCEDURE IF EXISTS Mock_test_1() 
    CREATE PROCEDURE Mock_test_1()  
    BEGIN DECLARE i int unsigned; 
    DECLARE curs1 CURSOR FOR select member_id from client_master; 
    open curs1 read_loop: LOOP 
    FETCH curs1 INTO i; 
    update client_master set `mobileno`='00000',`email`=concat('MOCK',member_id,'@mock.com'),`password`=md5('MOCK'),; 
    END // 
DELIMITER ; 

錯誤

ERROR 1064(42000):你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的權利 語法使用近「()CREATE PROCEDURE Mock_test_1手動()BEGIN

DECLARE我詮釋無符號;

DECLARE立方」位於第1行

+1

添加一個';''後DROP PROCEDURE IF EXISTS Mock_test_1()' – Jens

+0

你必須使用觸發器,存儲過程等之前改變分隔符。 –

回答

0

你必須使用觸發器,存儲過程等之前改變分隔符。

+0

他改變了分隔符,所以他沒事 – 2016-08-18 09:12:07

+0

問題是在分號下降程序 – 2016-08-18 09:12:30

+0

我有女僕的變化,但它給出了一些錯誤 DROP PROCEDURE如果存在Mock_test_1; CREATE PROCEDURE Mock_test_1() BEGIN DECLARE I INT無符號; DECLARE curs1 CURSOR FOR來自client_master的select member_id; open curs1; read_loop:LOOP FETCH curs1 INTO i; 更新client_master設置'mobileno' = '','email' =的concat( 'MOCK',member_id, '@ mock.com'),'password' = MD5( 'MOCK'),businessaddress = CONCAT( 'MOCK' ,member_id),imeino ='00000',panno ='AAAAA66666',aadharno ='11111'; insert into client_master_test select * from client_master; END // DELIMITER; –

相關問題