Renomeie uma tabela no MySQL

285

Renomear uma tabela não está funcionando no MySQL

RENAME TABLE group TO member;

A mensagem de erro é

#1064 - You have an error in your SQL syntax; check the manual that corresponds
        to your MySQL server version for the right syntax to use near 'group 
        RENAME TO member' at line 1

A consulta está funcionando bem em outras tabelas para mim, mas não com a tabela group.

Anil Olakkal
fonte
3
Ambos os sqls são iguais. Tente esta tabela de renomeação 'group' para membro
user1406062
5
Isso ilustra bem o quão inútil é usar letras maiúsculas para palavras-chave.
Martin Jambon
8
Não, não tem. As palavras-chave com letras maiúsculas melhoram a legibilidade e são o estilo padrão esperado.
Fmalina

Respostas:

474

groupé uma palavra-chave (parte de GROUP BY ) no MySQL, você precisa cercá-la com backticks para mostrar ao MySQL que você deseja que ela seja interpretada como um nome de tabela:

RENAME TABLE `group` TO `member`;

adicionado (ver comentários) - Essas não são aspas simples.

Joachim Isaksson
fonte
51
E sim, você precisa do tiquetaque de volta `e não das aspas simples 'Eu fiz a aspas simples por hábito e obtive o erro, mas talvez isso economize a outra pessoa em 10 segundos
Paul
Algumas palavras-chave, como NAME, ainda estão disponíveis sem marcas de retorno. Eu acho que essa disponibilidade é uma prática ruim, que deve ser removida um dia do MySQL
ad4s 19/10/16
2
Ou não use palavras-chave para tabelas ou colunas.
JDub9 22/0918
1
NÃO USE PALAVRAS-CHAVE PARA TABELAS OU COLUNAS.
mydoglixu
128

Tente por favor

RENAME TABLE  `oldTableName` TO  `newTableName`
Vijay Verma
fonte
Veja a resposta acima para saber por que você deve considerar o uso dos backticks. @coder
LinusGeffarth
31

A consulta mysql para renomear tabela é

Rename Table old_name TO new_name

Na sua consulta, você usou o grupo de qual das palavras-chave no MySQL. Tente evitar palavras-chave do mysql para nome ao criar tabela, nome do campo e assim por diante.

phponwebsites
fonte
23
ALTER TABLE old_table_name RENAME new_table_name;

ou

RENAME TABLE old_table_name TO new_table_name;
Neeraj Kumar
fonte
19

Renomeie uma tabela no MySQL:

ALTER TABLE current_name RENAME new_name;
Hasib Kamal
fonte
5
Bem-vindo ao SO. Leia este tutorial para fornecer respostas de qualidade. Apenas mostrar código não é uma boa prática.
thewaywewere
16

Alteração de nome da tabela

RENAME TABLE old_table_name TO new_table_name;
AA Noman
fonte
14

group - é uma palavra reservada no MySQL, é por isso que você vê esse erro.

#1064 - You have an error in your SQL syntax; check the manual that corresponds
        to your MySQL server version for the right syntax to use near 'group 
        RENAME TO member' at line 1

Você precisa agrupar o nome da tabela em backticks :

RENAME TABLE `group` TO `member`;
Boris
fonte
13
ALTER TABLE `group` RENAME `member`

group é keyword, então você deve incluir group

umar_
fonte
9
RENAME TABLE tb1 TO tb2;

tb1 - nome da tabela atual. tb2 - o nome que você deseja que sua tabela seja chamada.

Koech
fonte
8

De acordo com o mysql docs : "renomear TEMPORARYtabelas, RENAME TABLEnão funciona. Use em ALTER TABLEvez disso."

Portanto, este é o método mais portátil:

ALTER TABLE `old_name` RENAME `new_name`;
user2426679
fonte
6

Experimente qualquer um destes

RENAME TABLE `group` TO `member`;

ou

ALTER TABLE `group` RENAME `member`;
Mohammed Shafeek
fonte
2

Para Mysql 5.6.18usar o seguinte comando

ALTER TABLE `old_table` RENAME TO `new_table`

Além disso, se houver um erro dizendo ".... próximo a RENAME TO ..." tente remover o tique `

HA S
fonte
1

Executando o comando Alter

1.Clique na guia SQL na parte superior.

2.Na caixa de texto, digite o seguinte comando: ALTER TABLE exampletable RENAME TO new_table_name;

3.Clique no botão Ir.

fonte: https://my.bluehost.com/hosting/help/2158

curiosidade
fonte
1

Você pode usar

RENAME TABLE `group` TO `member`;

Use o sinal de retorno (`) em vez de aspas simples (').

Sodrul Amin Shaon
fonte
-1

Sem dar o nome do banco de dados, a tabela não pode ser renomeada no meu caso, segui o comando abaixo para renomear a tabela.

RENAME TABLE current_db.tbl_name TO current_db.tbl_name;
Vishnuvardhan
fonte
-6

Clique com o botão direito do mouse em Exibir> Nova Consulta

E digite: EXEC sp_rename 'Table', 'NewName'

Em seguida, clique no botão Executar no canto superior esquerdo da página.

Loai Tayem
fonte
MySQL não Transact SQL
Adam Joseph Looze