Ответ 1
Команда, которую вы ищете, это:
alter table tblName drop column columnName
где tblName
- это имя таблицы, а columnName
- это имя столбца, но есть несколько вещей, которые могут возникнуть в первую очередь.
- Если есть какие-либо ссылки по внешнему ключу на столбец, сначала вам нужно сначала избавиться от них.
- Если есть индекс, использующий этот столбец, вам нужно либо избавиться от него, либо настроить его, чтобы не использовать этот столбец.
Имейте в виду, что выполнение этой команды может не всегда быть хорошим. Один из вариантов - подождать время простоя, когда вы можете быть уверены, что никто не будет обращаться к базе данных, переименовать текущую таблицу, а затем использовать create table
и insert into ... select from
для переноса столбцов, которые вы не хотите удалять.
В одном из последних выпусков Oracle на самом деле есть мягкое удаление, которое может просто помечать столбец как неиспользованный, не удаляя его физически. Он имеет тот же эффект, поскольку вы больше не можете ссылаться на него, и там есть команда в строках alter table ... drop unused columns
, которая предназначена для работы в спокойное время, что делает тяжелую работу по ее физическому удалению.
Это имеет преимущество "мгновенного исчезновения" столбцов без перетаскивания производительности базы данных во время занятости.