Что происходит в Oracle, когда я опускаю столбец? - PullRequest
15 голосов
/ 01 ноября 2010

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

Ответы [ 2 ]

20 голосов
/ 01 ноября 2010

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

  • Данные, хранящиеся в этом столбце, потеряны.
  • Представления, ссылающиеся на этот столбец, являются недействительными - но (согласно Гари - спасибо!) Они не отброшены; они остаются недействительными до тех пор, пока не будут исправлены для работы с измененной схемой.
  • Хранимые процедуры, ссылающиеся на этот столбец, недействительны - то же самое.
  • Будут сброшены номера столбцов следующих столбцов.
  • Разрешения, предоставленные для столбца, будут удалены.
  • Индексы, ссылающиеся на этот столбец, будут удалены.
4 голосов
/ 02 ноября 2010

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

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

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

изменить набор таблиц не используется

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...