2016-08-18 38 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; –