Переименовать столбец в mysql (не удалось) - PullRequest
1 голос
/ 17 апреля 2020

У меня есть база данных (некоторые) с таблицей (exp) более 800 записей, я хочу изменить имя столбца с «Nr._CRT» на «ID», сохраняя тип smallint. Ошибка:

ERROR 1064 (42000): 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 '._CRT to ID' at line 1

Пока я пробовал следующее

    ALTER TABLE exp change Nr._CRT ID ;
    ALTER TABLE exp change 'Nr._CRT' 'ID' ;
    ALTER TABLE exp RENAME COLUMN Nr._CRT TO ID;
    ALTER TABLE exp RENAME COLUMN 'Nr._CRT' TO 'ID';
    ALTER TABLE exp CHANGE Nr._CRT ID ;
    ALTER TABLE exp CHANGE 'Nr._CRT' 'ID' ;
    ALTER TABLE exp RENAME COLUMN Nr._CRT TO ID;
    ALTER TABLE exp RENAME COLUMN 'Nr._CRT' TO 'ID';

Любая помощь, пожалуйста ...

1 Ответ

1 голос
/ 17 апреля 2020

Некоторые операторы в вашем списке имеют правильный синтаксис MySQL. Проблема заключается в том, как правильно заключить в кавычки исходное имя столбца, которое содержит специальные символы: вам нужны обратные кавычки, а не одинарные кавычки (которые предназначены для буквенных строк, а не для идентификаторов).

Например:

ALTER TABLE exp RENAME COLUMN `Nr._CRT` TO id;
...