MySQL,DECLARE出错

时间:2014-07-22 12:25:08

标签: mysql mysql-error-1064 declare

我正在使用MySQL v5.0.92而我正在尝试导入一些数据,但是在声明我的变量时出错了。

BEGIN
  DECLARE flag INT;
  DECLARE id INT;


while flag=0 begin
  SET id=(SELECT top 1 user_id 
         FROM ac_user_info WHERE user_id>@id order by user_id)

  INSERT INTO cuddleew_database1.cewp_usermeta(user_id,meta_key,meta_value)
  SELECT id,'first_name',first_name 
  FROM cuddleew_backup.ac_user_info WHERE user_id=@id

  INSERT INTO cuddleew_database1.cewp_usermeta(user_id,meta_key,meta_value)
  SELECT id,'last_name',last_name 
  FROM cuddleew_backup.ac_user_info WHERE user_id=@id

  SET flag=(select case @id when(SELECT MAX(user_id) 
                                FROM cuddleew_bakup.ac_user_info) then 1
     else 0
     END CASE)
  END WHILE
END

在MySQL控制台中,我得到了这个:

BEGIN DECLARE标志INT;

#1064 - 您的SQL语法出错;查看与您的手册相对应的手册 MySQL服务器版本的正确语法使用附近的DECLARE标志INT'在第2行。

你能帮我解决这个问题并告诉我错误吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

你必须先改变你的分隔符,所以;没有告诉MySQL这个命令结束了。

DELIMITER $$

[your code here]

END $$

DELIMITER ;