Переименовать столбец MySQL, содержащий ` в имени столбца

#mysql #alter #backticks

#mysql #изменить #обратные ссылки

Вопрос:

Итак, другой парень на работе создал таблицу со столбцом под названием:

     Max(`abs_spg_20090430`.`ID`)
  

это выдает мне ошибку теперь, когда я пытаюсь запустить дамп базы данных на другом сервере.

Я пытаюсь переименовать его, но

     ALTER TABLE abs_spgID_20090504 CHANGE Max(`abs_spg_20090430`.`ID`) id bigint default null;
  

а также

     ALTER TABLE abs_spgID_20090504 CHANGE `Max(`abs_spg_20090430`.`ID`)` id bigint default null;
  

выдает ошибку. У кого-нибудь из вас, дружелюбных людей, есть подсказка? Большое спасибо!

Комментарии:

1.Имя столбца имеет круглые скобки ( ) и обратные кавычки? вау!

2. Пожалуйста, всегда указывайте точное сообщение об ошибке, которое вы получаете.

3. Max( . идентификатор ) abs_spg_20090430 — это не столбец, это вызов функции

4. Я думаю, вы смотрите представление , а не таблицу.

5. нет, этот другой парень действительно выбрал это имя для столбца.

Ответ №1:

вам нужно привести свои цитаты и колонку тоже, например:

 ALTER TABLE abs_spgID_20090504  CHANGE `Max(``abs_spg_20090430``.``ID``)` id BIGINT DEFAULT NULL;
  

Комментарии:

1. Это почти сработало, но сервер пожаловался на период сейчас. Я создал другую таблицу с теми же полями, но с более обычными именами, а затем вставил в tmp select * из abs_spgID_20090504; а затем просто удалил первую таблицу и переименовал вторую. В любом случае, большое спасибо! Я ценю ваш вклад

2. странно, когда я создал столбец точно так, как указано, команда отлично сработала для меня