mysql - MySQL 错误,声明

标签 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 控制台中我得到这个:

开始声明标志 INT;

#1064 - 您的 SQL 语法有错误;检查与您对应的手册 MySQL 服务器版本,用于在第 2 行的“DECLARE flag INT”附近使用正确的语法。

你能帮我解决这个问题并告诉我出了什么问题吗?提前致谢。

最佳答案

您必须首先更改分隔符,因此 ;不告诉 MySQL 该命令已结束。

DELIMITER $$

[your code here]

END $$

DELIMITER ;

关于mysql - MySQL 错误,声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24887364/

相关文章:

mysql - 组织.hibernate.InstantiationException : Cannot instantiate abstract class or interface + google cloud sql

php - 类 Facebook 消息的数据库设计

mysql - 运行SQL语句时出错

mysql - 尝试将数据从 MySQL Workbench 6.3 恢复到 MySQL Workbench 8.0

C - 在函数参数中声明一个文件

php - 跨多个页面的 session 表单数据并插入到mysql中?

php - 显示当前连接

MySQL 条件连接

c++ - G++ 错误 : In file included, 然后未声明 Foo

sql - 如何在 Oracle SQL Developer 中使用变量?