【发布时间】:2015-06-21 15:28:21
【问题描述】:
我有一个工具,您可以将它与 DB2、Oracle 和 MySQL 一起使用。现在我有很多死锁 (SQL Server),我想避免这种情况。我有以下 SQL 更新查询
UPDATE [TABA]
SET FIELDA = 0
WHERE FIELDB = ? AND FIELDC = ?;
而这个 SQL 更新查询导致了死锁。我想将其更改为 SUBSELECT_FOR_UPDATE 例如
UPDATE [TABA]
SET FIELDA = 0
WHERE FIELDB IN (SELECT FIELDB
FROM [TABA] WHERE FIELDE = 600 AND FIELDG = 5885328 FOR UPDATE);
我不知道如何在 SUBSELECT(DB2、ORacle 和 SQL Server)中使用 FOR UPDATE。
【问题讨论】:
-
表总是相同的“TABA”,为什么需要子选择和“FOR UPDATE”?如果是 Oracle,只需使用第一个查询。
标签: sql-server database oracle db2