Подтвердить что ты не робот

Что происходит в Oracle, когда я бросаю столбец?

Каковы различные вещи, которые происходят, когда я бросаю столбец из заполненной таблицы. В all_tab_columns, column_id других столбцов получает reset?

4b9b3361

Ответ 1

Действия будут включать по крайней мере следующее:

  • Данные, хранящиеся в этом столбце, будут потеряны.
  • Представления, ссылающиеся на этот столбец, недействительны - но (согласно Gary - спасибо!), они не отбрасываются; они остаются недействительными до тех пор, пока не будут пересмотрены, чтобы работать с модифицированной схемой.
  • Сохраненные процедуры, ссылающиеся на этот столбец, недействительны - одинаковую оговорку.
  • Идентификаторы столбцов следующих столбцов будут reset.
  • Разрешения, предоставленные в столбце, будут удалены.
  • Индексы, ссылающиеся на этот столбец, будут удалены.

Ответ 2

изменить столбец падения таблицы

будет фактически посещать каждый блок и удалять данные столбца - и это дорогостоящая вещь для большой таблицы.

Вам может показаться более разумным выпуск:

alter table set unused

который просто помещает столбец как "ушедший" в словаре. Если вам по-прежнему нужно вернуть это пространство, вы можете запланировать "недействительное изменение таблицы" в спокойное время