Переименовать таблицу / объект
Oracle
-- Table
ALTER TABLE old_name RENAME TO new_name;
-- or
RENAME old_name TO new_name;
-- Column
ALTER TABLE customer RENAME COLUMN name TO full_name;Для таблиц/представлений/последовательностей используется RENAME или ALTER ... RENAME TO. Зависимые объекты (представления, синонимы) могут стать невалидными и потребовать перекомпиляции.
PostgreSQL
ALTER TABLE old_name RENAME TO new_name;
ALTER TABLE customer RENAME COLUMN name TO full_name;
ALTER VIEW old_view RENAME TO new_view;ALTER ... RENAME TO работает для большинства типов объектов. Ссылки внешних ключей и индексов сохраняются автоматически даже при смене имени (на основе OID).
MySQL
RENAME TABLE old_name TO new_name;
-- or
ALTER TABLE old_name RENAME TO new_name;
-- Column (8.0+)
ALTER TABLE customer RENAME COLUMN name TO full_name;RENAME TABLE атомарен и может переместить несколько таблиц одним оператором. Для переименования столбцов в 8.0+ используйте RENAME COLUMN; до этого нужно использовать CHANGE с указанием типа.
SQL Server
-- Table
EXEC sp_rename 'dbo.old_name', 'new_name';
-- Column
EXEC sp_rename 'dbo.customer.name', 'full_name', 'COLUMN';В SQL Server нет оператора RENAME TABLE; используется системная процедура sp_rename. Префикс схемы указывается в имени таблицы, но не в новом имени. Зависимые представления/процедуры нужно обновить вручную.
MongoDB
// Rename a collection
db.old_name.renameCollection("new_name");
// or the admin command
db.adminCommand({ renameCollection: "db.old_name", to: "db.new_name" });renameCollection меняет имя коллекции. Чтобы переименовать поле, используйте оператор $rename с updateMany. Шардированные коллекции можно переименовывать в 5.0+; старые версии это не поддерживают.
Redis
# Rename a key
RENAME old_key new_key
# Without overwriting if the target exists
RENAMENX old_key new_keyRENAME переименовывает ключ; если целевой уже существует, он перезаписывается. RENAMENX работает, только если целевого нет. Если исходного ключа нет, возвращается ошибка.
Elasticsearch
# An index cannot be renamed directly; reindex + alias approach
POST _reindex
{ "source": { "index": "old_name" }, "dest": { "index": "new_name" } }
DELETE old_name
# or use an alias for a seamless switch
POST _aliases
{ "actions": [ { "add": { "index": "new_name", "alias": "customer" } } ] }Команды переименования индекса нет. Переиндексируйте в новое имя через _reindex и удалите старый. Рекомендуется работать через стабильный алиас, чтобы приложение не зависело от имён индексов.