在MySQL中重命名表格

353

在MySQL中重命名表无效

RENAME TABLE group TO member;

错误信息为

#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

对我来说,这个查询在其他表上运行得很好,但在group表上不行。


这是文档:http://dev.mysql.com/doc/refman/5.0/en/rename-table.html - Jason
3
两个 SQL 语句是相同的。尝试执行 rename table 'group' to member - user1406062
5
这很好地说明了使用全大写关键词的毫无意义。 - Martin Jambon
9
不,它并不会。全大写的关键词可以提高可读性,并且是预期的标准风格。 - fmalina
17个回答

571

group是MySQL中的一个关键字(GROUP BY的一部分)。如果你想让MySQL把它解释为表名,需要使用反引号把它括起来:

RENAME TABLE `group` TO `member`;

新增(见评论)- 那不是单引号。


62
是的,你需要使用反引号 ` 而不是单引号 '。我因为习惯性地使用了单引号而导致出错,但也许这可以为其他人节省 10 秒时间。 - Paul
一些关键字,例如NAME仍然可以不使用反引号。我认为这种可用性是一种不好的做法,应该有一天从MySQL中删除。 - ad4s
3
不要为表格或列使用关键词。 - wheeleruniverse
2
不要为表或列使用关键字。 - mydoglixu

154

请尝试

RENAME TABLE  `oldTableName` TO  `newTableName`

请参考上面的答案,了解为什么应该考虑使用反引号。@coder - LinusGeffarth

43

MySQL的RENAME TABLE语句的语法如下:

RENAME TABLE <old_table_name> TO <new_table_name>

在您的查询中,您使用了MySQL中的关键字group。在创建表、字段名等时,请尽量避免使用MySQL关键字作为名称。


28
ALTER TABLE old_table_name RENAME new_table_name;
RENAME TABLE old_table_name TO new_table_name;

23

表名更改

RENAME TABLE old_table_name TO new_table_name;

20

如何在MySQL中重命名表:

ALTER TABLE current_name RENAME new_name;

5
欢迎来到SO。请阅读此如何回答以提供高质量的答案。仅仅展示代码并不是一个好的做法。 - thewaywewere

14

group - 是MySQL中的保留字,这就是为什么你会看到这样的错误。

#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
你需要使用反引号将表名括起来:
RENAME TABLE `group` TO `member`;

13
ALTER TABLE `group` RENAME `member`

group是关键字,因此您必须将其括在group中。


12

对于 Mysql 5.6.18,使用以下命令:

ALTER TABLE `old_table` RENAME TO `new_table`

如果出现“.... near RENAME TO ...”的错误,请尝试移除引号`


9
RENAME TABLE tb1 TO tb2;

tb1 - 当前表的名称。 tb2 - 你想要给你的表命名的名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接