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