#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. Спасибо, подумал, что можно добавить несколько таблиц одновременно