Sintaxe RENAME TABLE


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 MariaDB 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 MariaDB 3.23.23.

Retornar