siDDis Skrevet 4. mars 2008 Skrevet 4. mars 2008 Eg skal slette data i ein tabell som har referanse til ein parent_id inni seg den har to kolloner: lokasjon id og lokasjon parent id problemet her er at om eg skriver DELETE LOCATION_ID FROM LOCATION så slår ein constraint til at den ikkje kan slette ein lokasjon id som er parent til ein anna id. Eg har prøvd med ein subquery som kjører order by, men dette går ikkje grunnet Oracle ikkje støtter det, det er vell ikkje vanleg i andre databaser heller? Eg kan løyse dette med å skru av constrainten, men det hadde vore greit med ein *skikkeleg* lausning
___ Skrevet 4. mars 2008 Skrevet 4. mars 2008 Eg skal slette data i ein tabell som har referanse til ein parent_id inni seg den har to kolloner: lokasjon id og lokasjon parent id problemet her er at om eg skriver DELETE LOCATION_ID FROM LOCATION så slår ein constraint til at den ikkje kan slette ein lokasjon id som er parent til ein anna id. Eg har prøvd med ein subquery som kjører order by, men dette går ikkje grunnet Oracle ikkje støtter det, det er vell ikkje vanleg i andre databaser heller? Eg kan løyse dette med å skru av constrainten, men det hadde vore greit med ein *skikkeleg* lausning Når man jobber med hierarkiske tabeller, kan STARTS WITH og CONNECT BY være til stor hjelp. Det fungerer med sletting av data også. Eksempel: DELETE FROM EMPLOYEE WHERE EMP_ID IN (SELECT EMP_ID FROM EMPLOYEE START WITH LNAME = 'JONES' CONNECT BY MANAGER_EMP_ID = PRIOR EMP_ID); Werner
siDDis Skrevet 5. mars 2008 Forfatter Skrevet 5. mars 2008 Eg skal slette data i ein tabell som har referanse til ein parent_id inni seg den har to kolloner: lokasjon id og lokasjon parent id problemet her er at om eg skriver DELETE LOCATION_ID FROM LOCATION så slår ein constraint til at den ikkje kan slette ein lokasjon id som er parent til ein anna id. Eg har prøvd med ein subquery som kjører order by, men dette går ikkje grunnet Oracle ikkje støtter det, det er vell ikkje vanleg i andre databaser heller? Eg kan løyse dette med å skru av constrainten, men det hadde vore greit med ein *skikkeleg* lausning Når man jobber med hierarkiske tabeller, kan STARTS WITH og CONNECT BY være til stor hjelp. Det fungerer med sletting av data også. Eksempel: DELETE FROM EMPLOYEE WHERE EMP_ID IN (SELECT EMP_ID FROM EMPLOYEE START WITH LNAME = 'JONES' CONNECT BY MANAGER_EMP_ID = PRIOR EMP_ID); Werner Fantastisk! Då har eg lært noko nytt, eg visste at det var noko som var fullt mogleg hehe Takk for hjelpa!
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå