Jagadisha_Ingenious Ответов: 1

PL / SQL удаляет данные строка за строкой


Всем привет,

Кто-нибудь может сказать мне, как удалить данные строка за строкой из главной таблицы и значений в дочерней таблице с помощью цикла. У меня есть главная таблица, которая имеет отношение внешнего ключа с другой таблицей. То, что я хочу, это то, что мне нужно получить идентификатор из главной таблицы, и с помощью этого идентификатора я хочу удалить данные, присутствующие в другой таблице, вместе с содержимым главной таблицы.

*Получить идентификатор из главной таблицы
* Удалите значения в дочерней таблице, содержащие тот же идентификатор, который был извлечен из главной таблицы.
* Удалите эту строку главного идентификатора из главной таблицы.

Это делается процессом очистки баз данных, которые содержат ненужные данные.

Кроме того, я новичок в PL\SQL.

Спасибо и с уважением,
Jagadisha.Н

Что я уже пробовал:

Declare
your_variable varchar2(19);
BEGIN
 FOR x IN (SELECT COORDINATEDVERSIONID FROM Mastertable
                 where ISCURRENTVERSION = 0 order by coordinatedversionid asc) LOOP
   FOR y IN (DELETE FROM Childtable
            where coordinatedversionid = x.COORDINATEDVERSIONID order by coordinatedversionid asc
                      
            DELETE FROM Mastertable where coordinatedversionid = x.COORDINATEDVERSIONID
          
            ) LOOP
                 
         END LOOP;
   END LOOP;
END;

jgakenhe

Я бы установил мастер-таблицу для удаления на каскаде (http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php) и тогда все, что вам нужно сделать, это удалить запись главного ключа по первичному ключу, который вы хотите; тогда все связанные дочерние записи будут удалены.

Полегче, Пизи!

1 Ответов

Рейтинг:
2

Magic Wonder

Привет,

Проверить это...

Oracle/PLSQL: внешние ключи с каскадным удалением[^]

Надеюсь, это вам поможет.

Овации