Иногда возникает необходимость удалить все таблицы. Конечно, проще удалить пользователя базы и создать его заново. Это самый надёжный вариант, который точно удалит весь мусор, который может остаться в базе, однако не всегда на это есть пермиссии. Но можно воспользоваться этим скриптом:
Первый:
И второй:
Думаю ясно что они делают. Будьте внимательны:если вы удалите сначала таблицы, то триггеры будут переименованы и скрипт удаления триггеров может не отработать. Так что удаляйте сначала триггеры.
BEGIN FOR i IN (SELECT table_name FROM user_tables) LOOP EXECUTE IMMEDIATE('DROP TABLE ' || user || '.' || i.table_name || ' CASCADE CONSTRAINTS'); END LOOP; END;А тут еще 2 полезных скрипта:
Первый:
BEGIN FOR i IN (SELECT trigger_name FROM user_triggers) LOOP EXECUTE IMMEDIATE('DROP TRIGGER ' || user || '.' || i.trigger_name); END LOOP; END;
И второй:
BEGIN FOR i IN (SELECT sequence_name FROM user_sequences) LOOP EXECUTE IMMEDIATE('DROP SEQUENCE ' || user || '.' || i.sequence_name); END LOOP; END;
Думаю ясно что они делают. Будьте внимательны:если вы удалите сначала таблицы, то триггеры будут переименованы и скрипт удаления триггеров может не отработать. Так что удаляйте сначала триггеры.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.