2016-08-18 4 views
0

さらに100000個のレコードを持つcourser.member_idでmember_idを選択するプロシージャーを作成しています。 私は1つの変数を宣言していました。実行中のMysqlプロシージャーのエラー

誰でもこれを解決できますか?次のように 手順は次のとおりです。 -

 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構文でエラーが発生しています。 PROCEDURE Mock_test_1をCREATE)(」近く使用する権利 構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください()私はunsigned int型

DECLAREをBEGIN;ライン1

+1

'DROP PROCEDURE IF EXISTS Mock_test_1()の後に'; 'を追加してください – Jens

+0

トリガー、ストアドプロシージャなどを使用する前に、区切り文字を変更する必要があります。 –

答えて

0

DECLARE CUは、」あなたはように、トリガ、ストアドプロシージャを使用して前に区切り文字を変更する必要があります。

+0

彼はデリミタを変更しましたので、彼はOKです –

+0

問題はドロップ手順のセミコロンにあります –

+0

メイドの変更がありましたが、何らかのエラーが発生しました DROP PROCEDURE IF EXISTS Mock_test_1; プロシージャを作成するMock_test_1() BEGIN DECLARE i int unsigned; DECLARE curs1 CURSOR FORのselect member_id from client_master; open curs1; read_loop:ループ FETCH curs1 INTO i; ( 'MOCK'、member_id、 '@ mock.com')、 'パスワード' = md5( 'MOCK')、businessaddress = concat( 'MOCK')、 、member_id)、imeino = '00000'、panno = 'AAAAA66666'、aadharno = '11111'; に挿入するclient_master_test select * from client_master; END // DELIMITER; –

関連する問題