我正在使用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行。
你能帮我解决这个问题并告诉我错误吗?提前谢谢。
答案 0 :(得分:1)
你必须先改变你的分隔符,所以;没有告诉MySQL这个命令结束了。
DELIMITER $$
[your code here]
END $$
DELIMITER ;