MySQL 变量使用的大坑

在MySQL存储过程中,定义的变量若与表字段同名,会导致更新数据时的错误。例如,声明并初始化变量col为-1,然后更新表mytTab的col字段,接着尝试通过查询获取col的值,实际会得到-1而非预期的更新后的值。解决办法是在查询时使用表别名,如`t.col`,确保查询的是正确的列。遵循这一最佳实践可以避免类似的大乌龙。
摘要由CSDN通过智能技术生成

问题简述:
MySQL 存贮过程中定义的变量千万不要和和表中的名字一样,如果一样,再从表中取数据时,就会导致错误,而查询起来很难查出来。

举例 代码如下:

DECLARE col int;
set col =-1update mytTab  set col =10 where pk =1;
select col into @col from mytTab where pk = 1;

本意是想获取 col 在pk=1时的值,但是并不是,获得的值是 -1;
修改代码如下:

DECLARE col int;
set col =-1update mytTab  set col =10 where pk =1;
select t.col into @col from mytTab t.where t.pk = 1;

因此为了避免产生这种大乌龙,请老老实实的写上别名,不能省略。

maraSun 2022-02-18 BJFWDQ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值