作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经搜索了 20 分钟,为什么我在 mySql 中收到此错误但找不到答案。
“#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 5 行的 '' 附近使用的正确语法”
这是有问题的代码块:
CREATE PROCEDURE marouri_insert_users_emails()
BEGIN
DECLARE a INT;
DECLARE b char(16);
DECLARE cur1 CURSOR FOR SELECT id,name FROM glpi_users;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a,b;
IF a > 6 THEN
INSERT INTO glpi_useremails(users_id,is_default,is_dynamic,email) VALUES (a,1,0,CONCAT(b, '@alomrane.ma');
END IF;
END LOOP;
CLOSE cur1;
END;
mysql 顺便说一句,新手。提前致谢。
最佳答案
对于过程或函数或触发器中的多个语句,您必须设置除;
之外的另一个分隔符。否则 MySQL 认为,您的过程在第一个 ;
之后完成,这会导致语法错误。像这样尝试:
DELIMITER $$
CREATE PROCEDURE marouri_insert_users_emails()
BEGIN
DECLARE a INT;
DECLARE b char(16);
DECLARE cur1 CURSOR FOR SELECT id,name FROM glpi_users;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a,b;
IF a > 6 THEN
INSERT INTO glpi_useremails(users_id,is_default,is_dynamic,email) VALUES (a,1,0,CONCAT(b, '@alomrane.ma');
END IF;
END LOOP;
CLOSE cur1;
END$$
DELIMITER ;
哦,当游标找不到更多行时,您可能想声明一个继续处理程序来处理这种情况。请参阅according manual page例如。
关于Mysql 陌生人语法错误 #1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119708/
我是一名优秀的程序员,十分优秀!