• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Trigger usuwający rekordy z innej tabeli

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,344 wizyt
pytanie zadane 9 maja 2019 w SQL, bazy danych przez poldeeek Mądrala (5,980 p.)

Chciałem napisać wyzwalacz, który przed usunięciem rekordu z tabeli usunie wszystkie wskazujące na niego rekordy z innej tabli, ponieważ jest to relacja wiele do wielu to nie mogę go po prostu usunąć.
Napisałem coś takiego 
 

CREATE OR REPLACE TRIGGER DELETE_ZAJ_DOD 
BEFORE DELETE ON ZAJ_DOD 
BEGIN
    DELETE FROM ZAJ_DOD_UCZNIA WHERE zaj_dod_ucznia.zajecia_dodatkowe_id_zajec = :old.id_zajec;
END;

Tabele zaj_dod i zaj_dod_ucznia są ze sobą powiązane przez id. Przy takim kodzie mam błąd : 

Error: ORA-04082: odwołania NEW lub OLD nie są dozwolone w wyzwalaczach z poziomu tabeli

 

1 odpowiedź

+1 głos
odpowiedź 10 maja 2019 przez newman Gaduła (3,440 p.)
wybrane 10 maja 2019 przez poldeeek
 
Najlepsza

CREATE OR REPLACE TRIGGER DELETE_ZAJ_DOD 
BEFORE DELETE ON ZAJ_DOD  FOR EACH ROW
BEGIN
    DELETE FROM ZAJ_DOD_UCZNIA WHERE zaj_dod_ucznia.zajecia_dodatkowe_id_zajec = :old.id_zajec;
END;

Ewentualnie możesz dodać do tabeli z FK, do definicji kolumny z nim

ON DELETE CASCADE

 

 

komentarz 10 maja 2019 przez poldeeek Mądrala (5,980 p.)
edycja 10 maja 2019 przez poldeeek
To usuwanie kaskadowe wydaje mi się lepszym rozwiązaniem... Pytanie czy mogę to teraz zrobić jeśli już mam napisaną całą bazę danych ? Czy mogę edytować tylko ten jeden klucz obcy w tabeli bez usuwania żadnych encji ani ingerowania w dane ?

Podobne pytania

0 głosów
1 odpowiedź 1,057 wizyt
pytanie zadane 23 maja 2017 w SQL, bazy danych przez fanpajny Obywatel (1,610 p.)
0 głosów
1 odpowiedź 527 wizyt
pytanie zadane 11 kwietnia 2018 w SQL, bazy danych przez fusemul Użytkownik (710 p.)
+1 głos
2 odpowiedzi 1,596 wizyt
pytanie zadane 18 maja 2017 w SQL, bazy danych przez Marcin_N_97 Stary wyjadacz (10,290 p.)

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,662 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...