UPDATE count = count + 1是否存在并发?

时间:2009-06-09 18:33:16

标签: sql database concurrency

我想知道,我会遇到任何并发问题吗?

这不在交易中。此代码适用于Sqlite(prototype),但我计划将其与MySql或MS中的SQL一起使用

                command.CommandText =
                    "UPDATE tag_name SET count = count+1 "+
                    "WHERE tagid=@tagid";
                command.Parameters.Add("@tagid", DbType.Int64).Value = tagId;
                command.ExecuteNonQuery();

4 个答案:

答案 0 :(得分:4)

我可能错了,但我认为你不会有问题;我认为在UPDATE发生时会锁定的tag_name表,这样等待执行的任何其他更新基本上都会排队,而不是同时发生。

答案 1 :(得分:4)

不,这不应该是一个问题。默认情况下,锁定机制应该处理单个语句中的任何并发问题。

答案 2 :(得分:2)

我不这么认为,我很遗憾地记得在Microsoft的SQL服务器最佳实践示例中看到类似的内容。

答案 3 :(得分:2)

不是问题无论如何,您将拥有隐式交易。所以它应该不是问题。

即使您更改了TRANSACTION ISOLATION LEVEL,它也应该可以正常工作,至少在SQLServer上。