参数类型定义
请问删除记录后,ROW_COUNT()不是返回负数吗,存储过程怎么定义为samllint unsigned?不会报错吗?
请问删除记录后,ROW_COUNT()不是返回负数吗,存储过程怎么定义为samllint unsigned?不会报错吗?
2015-09-14
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 ;#修改结束符
举报