sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag använda FÖR UPPDATERING med en JOIN på Oracle?

försök:

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

REDIGERA :det kan verka lite kontraintuitivt med tanke på frågan du länkade till (som frågade hur man undviker en IN ), men kan fortfarande ge fördelar om din anslutning returnerar en begränsad uppsättning. Det finns dock ingen lösning:orakelundantaget är ganska självförklarande; oracle vet inte vilka rader som ska låsas på grund av DISTINCT . Du kan antingen utelämna DISTINCT eller definiera allt i en vy och sedan uppdatera den, om du vill, utan det explicita låset: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm



  1. Ska tabellvärdade parametrar användas här?

  2. MySQL:hur gör man säkerhet på radnivå (som Oracles virtuella privata databas)?

  3. Hur kan jag sammanfoga två tabeller med olika antal rader i MySQL?

  4. Hur optimerar jag ett bord på 9 GB om disken har väldigt lite ledigt utrymme?