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

Я пытаюсь переименовать столбец на сервере сообщества MySQL 5.5.27, используя это выражение SQL:

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

Я также пробовал

ALTER TABLE table_name RENAME old_col_name TO new_col_name;

Но в нем говорится:

Ошибка: проверьте Руководство, соответствующее версии вашего сервера MySQL.

Ответы

Ответ 1

Используйте следующий запрос:

ALTER TABLE tableName CHANGE 'oldcolname' 'newcolname' datatype(length);

Функция RENAME используется в базах данных Oracle.

ALTER TABLE tableName RENAME COLUMN "oldcolname" TO "newcolname" datatype(length);

Обратите внимание на обратные ссылки, используемые для MySQL, тогда как двойные кавычки используются для синтаксиса Oracle. Также обратите внимание, что MySQL 8.0 может не принимать обратные ссылки. В этом случае выполните запрос без обратных ссылок, и он, вероятно, будет работать.


@lad2025 упоминает это ниже, но я подумал, что было бы неплохо добавить то, что он сказал. Спасибо @lad2025!

Вы можете использовать RENAME COLUMN в MySQL 8.0, чтобы переименовать любой столбец, который вам нужно переименовать.

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

ALTER TABLE Синтаксис:

RENAME COLUMN:

  • Можно изменить имя столбца, но не его определение.

  • Более удобно, чем CHANGE, для переименования столбца без изменения его определения.

Ответ 2

В версии сервера: 5.6.34 Сервер сообщества MySQL

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name data_type;

Ответ 3

Из MySQL 5.7 Справочное руководство.

Синтаксис:

ALTER TABLE t1 CHANGE ab DATATYPE;

например: для клиента TABLE, имеющего COLUMN customer_name, customer_street, customercity.

И мы хотим изменить customercity на customer_city:

alter table customer change customercity customer_city VARCHAR(225);

Ответ 4

С MySQL 8.0 вы можете использовать

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

Синтаксис ALTER TABLE:

ИЗМЕНИТЬ КОЛОННУ:

  • Может изменить имя столбца, но не его определение.

  • Удобнее, чем CHANGE, переименовывать столбец без изменения его определения.

DBFiddle Demo

Ответ 5

Вы можете использовать следующий код:

ALTER TABLE 'dbName'.'tableName' CHANGE COLUMN 'old_columnName' 'new_columnName' VARCHAR(45) NULL DEFAULT NULL ;

Ответ 6

Попробуй это

sp_rename 'tableName.oldColumnName', 'newColumnName', 'COLUMN';

Ответ 7

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

alter table categories change  type  category_type varchar(255);