RENAME TABLE nome_tabela TO novo_nome_tabela[, nome_tabela2 TO novo_nome_tbl2,...]
A renomeação é feita automicamente, o que significa que nenhuma outra thread pode acessar qualquer uma das tabelas enquanto a renomeação está sendo exectuda. Isto torna possível substituir uma tabela por uma tabela vazia:
CREATE TABLE tabela_nova (...); RENAME TABLE tabela_antiga TO tabela_backup, tabela_nova TO tabela_antiga;
A renomeação é feita da esquera para a direita, o que significa que se você quiser trocar os nomes das tabelas, você deve fazer:
RENAME TABLE tabela_antiga TO tabela_backup, tabela_nova TO tabela_antiga, tabela_backup TO tabela_nova;
Desde que dois banco de dados estejam no mesmo disco você pode renomear de um banco de dados para outro:
RENAME TABLE bd_atual.nome_tabela TO outro_bd.nome_tabela;
Quando você executa RENAME
, você não pode
ter nenhuma tabela bloqueada ou transações ativas. Você
também deve ter o privilégio ALTER
e
DROP
na tabela original e o privilégio
CREATE
e INSERT
na nova
tabela.
Se o MySQL encontrar qualquer erro uma renomeação multi-tabela, ele fará um renomeação reversa para todas a tabelas renomeadas para retornar tudo ao estado original.
RENAME TABLE
foi adicionado no MySQL 3.23.23.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.