Oracle удаление строк из нескольких таблиц

#sql #oracle #sql-delete

#sql #Oracle #plsql

Вопрос:

я пытаюсь удалить строки из нескольких таблиц, но получаю синтаксическую ошибку в medewerkers m,

Кто-нибудь может сказать мне, что я здесь делаю не так? :

 declare
v_mnr medewerkers.mnr%type;
procedure ontsla_med(p_mnr in medewerkers.mnr%type)
IS
BEGIN
    DELETE FROM medewerkers m, INSCHRIJVINGEN i , UITVOERINGEN u WHERE m.MNR = p_mnr and i.cursus = p_mnr and u.docent = p_mnr;
END ontsla_med;
BEGIN
    ontsla_med(7000);
END;  

Похоже, что оператор delete неверен?

Комментарии:

1. Одно УДАЛЕНИЕ для каждой таблицы.

2. В качестве альтернативы, вы можете попытаться удалить данные из родительской и дочерней таблиц, и в этом случае вам может потребоваться создать ограничения внешнего ключа с помощью опции КАСКАДНОГО удаления.

Ответ №1:

Не могу этого сделать. Это должно быть три отдельных удаления.

 DELETE 
  FROM medewerkers
 WHERE mnr = p_mnr;

DELETE 
  FROM UITVOERINGEN 
 WHERE cursus = p_mnr;

DELETE 
  FROM UITVOERINGEN 
 WHERE docent = p_mnr;
  

Комментарии:

1. Спасибо, подумал, что можно добавить несколько таблиц одновременно