为了账号安全,请及时绑定邮箱和手机立即绑定

参数类型定义

请问删除记录后,ROW_COUNT()不是返回负数吗,存储过程怎么定义为samllint unsigned?不会报错吗?

正在回答

1 回答

1、ROW_COUNT()函数代表更新或删除被影响的行数,没有任何操作时查询的结果是-1,即未有记录被更新或删除;
2、存储过程是SQL语句和控制语句的编译集合,以名称存储并作为一个处理单元。存储过程需要对IN或者OUT的参数定义数据类型,定义成SMALLINT UNSIGNED并不存在问题,看来还是你对存储过程没有理解,如果你学过编程,MySQL的存储过程实际是编程中的函数(可以是属性,也可以是方法)。以下是“8.7 创建带有多个OUT类型参数的存储过程”课程列举的例子:

DELIMITER //#修改结束符

CREATE PROCEDURE removeUserByAgeAndReturnInfos(IN p_age SMALLINT UNSIGNED,OUT deleteUsers SMALLINT UNSIGNED,OUT userConts SMALLINT UNSIGNED)

BEGIN

DELETE FROM users3 WHERE age = p_age;

SELECT ROW_COUNT() INTO deleteUsers;

SELECT COUNT(id) FROM users3 INTO userConts;#配置调整,增加FROM users3

END

//

DELIMITER ;#修改结束符

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

参数类型定义

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信