Renomear uma tabela / objeto
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 ou ALTER ... RENAME TO é usado para tabelas/views/sequences. Objetos dependentes (views, synonyms) podem ficar inválidos e precisar ser recompilados.
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 funciona para a maioria dos tipos de objeto. Referências de chaves estrangeiras e índices são preservadas automaticamente mesmo com a mudança de nome (baseadas em 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 é atômico e pode mover várias tabelas em uma única instrução. Para renomear colunas, use RENAME COLUMN no 8.0+; antes disso, é preciso usar CHANGE e especificar também o tipo.
SQL Server
-- Table
EXEC sp_rename 'dbo.old_name', 'new_name';
-- Column
EXEC sp_rename 'dbo.customer.name', 'full_name', 'COLUMN';O SQL Server não tem instrução RENAME TABLE; usa-se a procedure de sistema sp_rename. O prefixo de schema é informado no nome da tabela, mas não no novo nome. Views/procedures dependentes devem ser atualizadas manualmente.
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 altera o nome da coleção. Para renomear um campo, use o operador $rename com updateMany. Coleções com sharding podem ser renomeadas no 5.0+; versões mais antigas não suportam.
Redis
# Rename a key
RENAME old_key new_key
# Without overwriting if the target exists
RENAMENX old_key new_keyRENAME renomeia a chave; se o destino já existir, é sobrescrito. RENAMENX funciona apenas se o destino não existir. Retorna erro se a chave de origem não existir.
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" } } ] }Não há comando para renomear índices. Faça reindex para o novo nome com _reindex e exclua o antigo. Recomenda-se operar atrás de um alias estável, para manter a aplicação independente dos nomes dos índices.