欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

存储过程中参数名和表字段名相同的问题

程序员文章站 2024-03-22 10:20:35
...

今天写了一个简单的存储过程,用于修改表字段的值,如下:
IN enterpriseid int ,IN total int

BEGIN
	#用于修改指定企业的消息总条数
	UPDATE website_sys_enterprise SET MessageTotal = MessageTotal+`total` 
	WHERE EnterpriseID = `enterpriseid`;
END

结果:执行完成后,发现该存储过程修改了表中所有行的信息。也就是说where条件语句并没有起到限制作用。
解决办法:修改了入参的名称。

原因:存储过程中的where条件语句,如果传入的参数和表字段名相同,存储过程就会把这个约束条件忽略。
小结:存储过程中传递的参数名不要和字段名相同。特别是修改、删除等操作,可能会对整张表产生影响。后果会很严重!!!

相关标签: 存储过程