【问题标题】:Mysql Procedure error while executing itMysql 程序在执行时出错
【发布时间】:2016-08-18 07:41:30
【问题描述】:

我正在创建在 courser.member_id 中选择 member_id 的程序,它有超过 100000 条记录。 我已经声明了一个变量 i ,它存储一个成员 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`='0000001231',`email`=concat('MOCK',member_id,'@mock.com'),`password`=md5('MOCK'),;
  END //
 DELIMITER ;

错误

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的信息 '() CREATE PROCEDURE Mock_test_1() BEGIN 附近使用的语法

DECLARE i int unsigned;

在第 1 行声明 cu'

【问题讨论】:

  • DROP PROCEDURE IF EXISTS Mock_test_1() 之后添加;
  • 在使用触发器、存储过程等之前必须更改分隔符。

标签: mysql database stored-procedures


【解决方案1】:

您必须在使用触发器、存储过程等之前更改分隔符。

【讨论】:

  • 他改变了分隔符所以他没问题
  • 问题在drop过程的分号处
  • 我换了女佣,但它给出了一些错误 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;打开curs1; read_loop: LOOP FETCH curs1 INTO i;更新client_master设置mobileno='01231',email=concat('MOCK',member_id,'@mock.com'),password=md5('MOCK'), businessaddress = concat('MOCK', member_id),imeino = '00000',panno='AAAAA66666',aadharno = '11111';插入client_master_test select * from client_master; END // 分隔符 ;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
相关资源
最近更新 更多