【发布时间】:2017-09-26 16:12:58
【问题描述】:
为了检索 ID,我首先在两个后续查询中进行选择,然后进行更新。
问题是我遇到了锁定行的问题。我已经读过将这两个语句 Select 和 Update 放在一个存储过程中它有助于锁定。这是真的吗?
我运行的查询是:
select counter
from dba.counter_list
where table_name = :TableName
update dba.counter_list
set counter = :NewCounter
where table_name = :TableName
问题在于,可能会发生多个用户选择同一行的情况,并且他们也可能更新同一行。
【问题讨论】:
-
请发布您现有的代码并解释您与锁有关的确切问题。
-
@PM77-1 我做到了,谢谢
-
锁是高度特定于供应商的 - 所以请添加标签以指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或完全不同的东西。 -
SQL 不是数据库 - 它是一种查询语言。您使用的是什么具体的 RDBMS?甲骨文? mysql? PostgreSQL?火鸟?还有什么?
-
将它们放在一个 transaction 中会影响锁定。我不知道将它们放在存储过程中会有很大的影响。
标签: sql locking sybase database-locking