sql >> Databasteknik >  >> RDS >> Oracle

SQL-syntax för uppdateringsfråga med anslutning av föregående

Den hierarkiska frågan fungerar bara med SELECT. Det fungerar inte med UPDATE (jag håller med om att det kunde vara snyggt om det gjorde det).

Så vad du kan göra är detta:

update HTABLE 
set status = 'INACTIVE'
WHERE STATUS <> 'CLOSE'
and id in ( select c.id
            from htable
            connect by prior ID = PARENT_ID 
            start with PARENT_ID = 12345);

Notera ordningen på kolumnerna connect by prior ID = PARENT_ID . Normalt vill vi gå nerför trädet från START MED-raden, vilket är vad jag har gjort. Din beställning connect by prior PARENT_ID = ID går upp i trädet från 12345 till sina föräldrar, farföräldrar, etc. Om det är vad du vill byta connect by klausul tillbaka.



  1. Ansluter till MySQL-databasen med min iOS-app

  2. Var ska jag lagra en databasanslutningssträng?

  3. Viloläge Criteria Query för att få specifika kolumner

  4. Vad skulle hindra mig från att ansluta till en MySQL-server på AWS RDS från en AWS EC2 VM?