sql >> Databáze >  >> RDS >> Oracle

Jak mohu použít FOR UPDATE s JOIN na Oracle?

zkuste:

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

UPRAVIT :to se může zdát trochu neintuitivní, vezmeme-li v úvahu otázku, na kterou jste odkazovali (která zjišťovala, jak se obejít bez IN ), ale stále může poskytovat výhody, pokud vaše spojení vrátí omezenou sadu. Neexistuje však žádné řešení:výjimka věštce je docela samozřejmá; Oracle neví, které řádky zamknout kvůli DISTINCT . Můžete buď vynechat DISTINCT nebo definujte vše v pohledu a pak to aktualizujte, pokud chcete, bez explicitního zámku: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm



  1. MySQL 'Oříznutá nesprávná hodnota INTEGER'

  2. Proč nemohu provést agregační funkci na výrazu obsahujícím agregaci, ale mohu tak učinit vytvořením nového příkazu select kolem něj?

  3. Spring JPA + dynamicky přepínat zdroj dat mezi schématy v postgresql

  4. Klíčové indikátory problémového designu