sql >> Database >  >> RDS >> Oracle

Hoe kan ik FOR UPDATE gebruiken met een JOIN op Oracle?

probeer:

select ..... 
from <choose your table>
where id in (<your join query here>) for UPDATE;

BEWERKEN :dat lijkt misschien een beetje contra-intuïtief, rekening houdend met de vraag waarnaar u linkte (waarin werd gevraagd hoe u kunt afzien van een IN ), maar kan nog steeds voordeel opleveren als uw deelname een beperkte set retourneert. Er is echter geen oplossing:de orakeluitzondering spreekt voor zich; oracle weet niet welke rijen vergrendeld moeten worden vanwege de DISTINCT . U kunt de DISTINCT . weglaten of definieer alles in een weergave en werk dat vervolgens bij, als je dat wilt, zonder de expliciete vergrendeling: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm



  1. Laravel 5:voer migraties uit in een serveromgeving, niet lokaal

  2. Ongeldig syntaxisfouttype =MyISAM in DDL gegenereerd door Hibernate

  3. Beperkingencontrole:TRY/CATCH vs Exists()

  4. Mysql-gebeurtenis werkt niet