sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL djup uppdatering

MERGE är en väg att gå.

Det finns en Bag:items=Item1, Item2

Det finns en BagInDB:bag_id =1items=Item1,Item3

Så vi måste uppdatera Item1, lägga till Item2 och ta bort Item3

1:a steget (gå med):

select * from bag full outer join (select * from bagInDB where bag_id = 1)

det kommer att ge dig

bag_itemName bagInDb_itemName
------------ ----------------
Item1        Item1
Item2        null
null         Item3

2:a steget (sammanfoga)

merge into baginDB b
using(query above) q on b.bag_id = 1 and b.itemName = q.bagInDb_itemName
when matched then
delete where q.bag_itemName is null
<rest of the conditions>



  1. Uppdaterar kolumnen till standardvärdet med SQLAlchemy

  2. Hur installerar man localdb separat?

  3. Kan jag i en Oracle-trigger tilldela nytt och gammalt till en rowtype-variabel?

  4. JPA infogar inte i databasen, varför?