2014-01-05 28 views
0

在我的网站上,我使用这个查询更新指定记录并取回它的id。它工作正常,但我担心如果两个用户同时访问我的网站会发生什么情况。变量@update_id是用户特定的还是不是?我是否需要担心会发生什么问题(比如两个用户获得相同的ID,但他们更新了不同的记录或类似的东西)?我应该使用交易来防止这种情况?感谢所有的答案。与MySQL变量原子和用户特定的工作?

SET @update_id := 0; 
UPDATE `table` 
SET column=$column, 
     id=(SELECT @update_id := id) 
     WHERE column2=$column2 
     LIMIT 1; 
SELECT @update_id; 
+0

这是会议,我的意思是:通过连接。 – CentaurWarchief

回答

0

用户变量是特定于连接的。

如果您失去连接并且会自动为您重新建立连接(例如,通过Perl mysql interface),则使用这样的变量会遇到问题。 如果你担心这个问题,存储过程是更好的解决方案。