【发布时间】:2009-06-09 18:33:16
【问题描述】:
我想知道,我会遇到任何并发问题吗?
这不在交易中。此代码适用于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();
【问题讨论】:
-
请注意不要在 WHERE 子句中引用计数。否则你可能会遇到自己的“万圣节问题”(en.wikipedia.org/wiki/Halloween_Problem)
-
+1 用于提及万圣节问题。我毫不怀疑,如果你没有提到它,我会遇到这个问题并且整天(或一周!)+1000 如果可以的话,我会遇到这个问题并且想知道/抱怨这个问题 :)
-
我希望我的错误都不会出现在维基百科中!
标签: sql database concurrency