【发布时间】:2008-11-10 17:50:29
【问题描述】:
我一定忽略了一些简单的事情。我在 MySQL 存储过程中从查询结果中设置一个变量,如下所示:
SELECT @myName := username FROM User WHERE ID=1;
所以,@myName 存储的是用户 ID 1 的用户名,即“Paul”。太好了。
但稍后在存储过程中我对此记录运行更新:
UPDATE User SET username = 'Fred' WHERE ID=1;
现在,由于某种原因,@myName = 'Fred' 仍然应该等于 'Paul',对吧?看起来 MySQL 只是在创建一个指向记录的指针,而不是在 @myName 变量中存储一个静态值。
简而言之,我希望能够将查询结果中的值存储在变量中,并确保我的变量的值不会改变,即使它设置的表中的数据发生了变化。
我错过了什么?提前致谢!
【问题讨论】:
-
我遇到了同样的错误。有解决办法吗?
标签: mysql database stored-procedures