Sql 是否与UPDATE count=count+;1.

Sql 是否与UPDATE count=count+;1.,sql,database,concurrency,Sql,Database,Concurrency,我想知道,我会不会遇到任何并发问题 这不在事务中。此代码用于Sqlite(prototype),但我计划将其用于MySql或MS的SQL command.CommandText = "UPDATE tag_name SET count = count+1 "+ "WHERE tagid=@tagid"; command.Parameters.Add("@

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

这不在事务中。此代码用于
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();

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

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

我不这么认为,我记得在Microsoft的SQL server最佳实践示例中看到过类似的情况。

没有问题。

您无论如何都会有隐式事务。所以这应该不是问题


即使您更改了事务隔离级别,它也应该可以正常工作,至少在SQLServer上是这样。

请注意不要在WHERE子句中引用count。否则,您可能会遇到自己的“万圣节问题”(+1),因为您提到了万圣节问题。我毫不怀疑,如果你不提,我会遇到这个问题,整天(或一周!)+1000如果可以的话:)我希望我的bug不会出现在维基百科上!