我想知道,我会遇到任何并发问题吗?
这不在交易中。此代码适用于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();
答案 0 :(得分:4)
我可能错了,但我认为你不会有问题;我认为在UPDATE发生时会锁定的tag_name表,这样等待执行的任何其他更新基本上都会排队,而不是同时发生。
答案 1 :(得分:4)
不,这不应该是一个问题。默认情况下,锁定机制应该处理单个语句中的任何并发问题。
答案 2 :(得分:2)
我不这么认为,我很遗憾地记得在Microsoft的SQL服务器最佳实践示例中看到类似的内容。
答案 3 :(得分:2)
不是问题无论如何,您将拥有隐式交易。所以它应该不是问题。
即使您更改了TRANSACTION ISOLATION LEVEL,它也应该可以正常工作,至少在SQLServer上。