• 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

Object Storage Arubacloud
0 głosów
1,098 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ź 588 wizyt
pytanie zadane 23 maja 2017 w SQL, bazy danych przez fanpajny Obywatel (1,610 p.)
0 głosów
1 odpowiedź 403 wizyt
pytanie zadane 11 kwietnia 2018 w SQL, bazy danych przez fusemul Użytkownik (710 p.)
+1 głos
2 odpowiedzi 1,316 wizyt
pytanie zadane 18 maja 2017 w SQL, bazy danych przez Marcin_N_97 Stary wyjadacz (10,290 p.)

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,003 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...