Удаление строк из родительской таблицы с помощью внешнего ключа в SQL - PullRequest
0 голосов
/ 02 мая 2018

У меня есть родительская таблица с внешним ключом и дочерняя таблица с первичным ключом. Я хочу удалить только те строки родительской таблицы, которые не имеют соответствующих строк в дочерней таблице. Я хочу реализовать это в хранимой процедуре SQL.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Вы также можете использовать joins (т.е. left join)

delete p from parent p
left join child c on c.parentid  = p.parentid 
where c.parentid  is null;
0 голосов
/ 02 мая 2018

Обычно вы просто используете not exists:

delete parent
    where not exists (select 1
                      from child
                      where child.parentid = parent.id
                     );
...