Каковы различные вещи, которые происходят, когда я бросаю столбец из заполненной таблицы. В all_tab_columns, column_id других столбцов получает reset?
Что происходит в Oracle, когда я бросаю столбец?
Ответ 1
Действия будут включать по крайней мере следующее:
- Данные, хранящиеся в этом столбце, будут потеряны.
- Представления, ссылающиеся на этот столбец, недействительны - но (согласно Gary - спасибо!), они не отбрасываются; они остаются недействительными до тех пор, пока не будут пересмотрены, чтобы работать с модифицированной схемой.
- Сохраненные процедуры, ссылающиеся на этот столбец, недействительны - одинаковую оговорку.
- Идентификаторы столбцов следующих столбцов будут reset.
- Разрешения, предоставленные в столбце, будут удалены.
- Индексы, ссылающиеся на этот столбец, будут удалены.
Ответ 2
изменить столбец падения таблицы
будет фактически посещать каждый блок и удалять данные столбца - и это дорогостоящая вещь для большой таблицы.
Вам может показаться более разумным выпуск:
alter table set unused
который просто помещает столбец как "ушедший" в словаре. Если вам по-прежнему нужно вернуть это пространство, вы можете запланировать "недействительное изменение таблицы" в спокойное время