Oracle 10g - 锁定 table,其中两个过程可能同步更新同一个 table
Oracle 10g - Lock table where two procedures might update this same table synchronously
我想在 Oracle 10g 中锁定一个 table,例如过程 A 必须等到过程 B 完成更新。我阅读了有关命令锁 TABLE 的文章,但我不确定其他过程是否正在等待获取锁。
也有可能是另一个线程在更新过程中调用了同一个存储过程 B,我想由于存储过程是 运行 在单个线程中,这也会是一个问题?
您通常不想在 Oracle 中锁定 整个 table,当然锁定通常是一个重要问题。默认情况下,如果 2 个会话尝试更新同一行,则第二个会话将为 "blocked",并且必须等待第一个会话提交或回滚其更改。您可以使用 select with for update 子句来锁定行而不更新它。
您可以使用 Global Temporary Table,而不是使用所有会话共享的单个常规 table:这样每个会话都有自己的副本。
我想在 Oracle 10g 中锁定一个 table,例如过程 A 必须等到过程 B 完成更新。我阅读了有关命令锁 TABLE 的文章,但我不确定其他过程是否正在等待获取锁。 也有可能是另一个线程在更新过程中调用了同一个存储过程 B,我想由于存储过程是 运行 在单个线程中,这也会是一个问题?
您通常不想在 Oracle 中锁定 整个 table,当然锁定通常是一个重要问题。默认情况下,如果 2 个会话尝试更新同一行,则第二个会话将为 "blocked",并且必须等待第一个会话提交或回滚其更改。您可以使用 select with for update 子句来锁定行而不更新它。
您可以使用 Global Temporary Table,而不是使用所有会话共享的单个常规 table:这样每个会话都有自己的副本。