Переименовать таблицу в MySQL


285

Переименование таблицы не работает в 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.



3
Оба sqls одинаковы. Попробуйте переименовать таблицу 'group' для участника
user1406062

5
Это прекрасно показывает, как бессмысленно использовать заглавные буквы для ключевых слов.
Мартин Джамбон,

8
Нет. Все заглавные буквы улучшают читабельность и ожидают стандартного стиля.
Фмалина

Ответы:


474

groupявляется ключевым словом (частью GROUP BY ) в MySQL, вам нужно заключить его в обратные кавычки, чтобы показать MySQL, что вы хотите, чтобы оно интерпретировалось как имя таблицы:

RENAME TABLE `group` TO `member`;

добавлено (см. комментарии) - это не одинарные кавычки.


51
И да, вам нужен обратный тик ', а не одиночная кавычка' Я сделал кавычку по привычке и получил ошибку, но, возможно, это сэкономит кому-то еще 10 секунд
Пол

Некоторые ключевые слова, такие как NAME, по-прежнему доступны без обратных тиков. Я думаю, что эта доступность - плохая практика, которая должна быть удалена однажды из MySQL
ad4s

2
Или не используйте ключевые слова для таблиц или столбцов.
jDub9

1
НЕ ИСПОЛЬЗУЙТЕ КЛЮЧЕВЫЕ СЛОВА ДЛЯ СТОЛОВ ИЛИ КОЛОНН.
mydoglixu


31

MySQL запрос на переименование таблицы

Rename Table old_name TO new_name

В своем запросе вы использовали group, который является одним из ключевых слов в MySQL. Старайтесь избегать ключевых слов mysql для имени при создании таблицы, имени поля и так далее.



19

Переименуйте таблицу в MySQL:

ALTER TABLE current_name RENAME new_name;

5
Добро пожаловать в ТАК. Пожалуйста, прочитайте эту инструкцию для обеспечения качественного ответа. Просто показывать код не очень хорошая практика.
thewaywewere


14

группа - это зарезервированное слово в 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


9
RENAME TABLE tb1 TO tb2;

tb1 - имя текущей таблицы. tb2 - имя, по которому вы хотите, чтобы ваш стол назывался.


8

Согласно документации mysql : «переименовывать TEMPORARYтаблицы RENAME TABLEне работает. Используйте ALTER TABLEвместо этого».

Так что это самый переносимый метод:

ALTER TABLE `old_name` RENAME `new_name`;


2

Для Mysql 5.6.18использования следующей команды

ALTER TABLE `old_table` RENAME TO `new_table`

Также, если возникла ошибка «.... рядом с RENAME TO ...», попробуйте снять галочку `



1

Ты можешь использовать

RENAME TABLE `group` TO `member`;

Используйте обратную галочку (`) вместо одинарных кавычек (').


-1

Без указания имени базы данных таблицу нельзя переименовать в моем случае, я следовал приведенной ниже команде, чтобы переименовать таблицу.

RENAME TABLE current_db.tbl_name TO current_db.tbl_name;

-6

Щелкните правой кнопкой мыши View> New Query

И введите: EXEC sp_rename 'Table', 'NewName'

Затем нажмите кнопку «Выполнить» в верхнем левом углу страницы.


MySQL не Transact SQL
Адам Джозеф Луз
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.