MYSQL存储过程出现Result consisted of more than one row 错误的解决方法
来源:互联网 发布:西南交通大学网络缴费 编辑:程序博客网 时间:2024/05/19 00:17
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `city`.`PROCEDURE_THREE`(IN id INT,OUT truthname VARCHAR(30))
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
SET @id=id;
SELECT NAME INTO truthname FROM city WHERE id=@id;
END$$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `city`.`PROCEDURE_THREE`(IN id INT,OUT truthname VARCHAR(30))
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
SET @id=id;
SELECT NAME INTO truthname FROM city WHERE id=@id;
END$$
DELIMITER ;
上面红色标记的语句会出现如标题的错误;
更正方法就是添加唯一一行来确定:LIMIT 1条件
修改代码:
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `city`.`PROCEDURE_THREE`(IN id INT,OUT truthname VARCHAR(30))
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
SET @id=id;
SELECT NAME INTO truthname FROM city WHERE id=@id LIMIT 1;
END$$
DELIMITER ;
这种赋值语句还有个规矩就是参数名和字段名不能冲突,不然能够执行过去,但是却没有给参数赋值,这是个很隐性的错误,可以参考手册上的:
重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。
0 0
- MYSQL存储过程出现Result consisted of more than one row 错误的解决方法
- Result consisted of more than one row 错误的解决
- Result consisted of more than one row错误的修正
- 存储过程错误 1172 - Result consisted of more than one row
- mysql数学函数存储过程 Result consisted of more than one row
- Result consisted of more than one row
- Result consisted of more than one row
- Mysql报错:Result consisted of more than one row
- ERROR 1172 (42000): Result consisted of more than one row
- [Err] 1172 - Result consisted of more than one row
- Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Result consisted of more than
- 关于mysql错误:Subquery returns more than 1 row
- ORA-01427:single-row subquery returns more than one row
- mysql出现错误:The server time zone value is unrecognized or represents more than one time zone
- MYSQL --Subquery returns more than 1 row
- MySQL:Subquery returns more than 1 row
- mybatis中:returned more than one row, where no more than one was expected
- Mybatis中关于:Statement returned more than one row, where no more than one was expected.
- Diablo(暗黑破坏神)的特效实现
- zookeeper集群与kafka集群搭建
- Linux 下的图形库介绍
- 【php】empty和isset的区别 总结
- LeetCode First Missing Positive
- MYSQL存储过程出现Result consisted of more than one row 错误的解决方法
- jQuery-自学笔记(1)——基础入门
- 单例设计模式(Singleton)
- 在 maven 中使用本地 jar 包
- spring部署junit 模块化测试
- 通过微信网页授权获取用户OpenId(redirect_uri 参数错误)
- Hello CSDN!
- 微信小程序搞起来!!!
- spring boot 架构问题 时间处理 (映射,时区问题)