442

如何重命名表中的列xyz?这些列是:

Manufacurerid, name, status, AI, PK, int

我想重命名为manufacturerid

我尝试使用 PHPMyAdmin 面板,但出现此错误:

MySQL said: Documentation
#1025 - Error on rename of '.\shopping\#sql-c98_26' to '.\shopping\tblmanufacturer' (errno: 150)
4

9 回答 9

753

Lone Ranger 很接近了……其实你还需要指定重命名列的数据类型。例如:

ALTER TABLE `xyz` CHANGE `manufacurerid` `manufacturerid` INT;

记住 :

  • 将 INT 替换为您的列数据类型(必需)
  • 波浪号/反引号 (`) 是可选的
于 2010-10-23T04:08:57.283 回答
44

标准的 MySQL 重命名语句是:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name 
CHANGE [COLUMN] old_col_name new_col_name column_definition 
[FIRST|AFTER col_name]

对于这个例子:

ALTER TABLE xyz CHANGE manufacurerid manufacturerid datatype(length)

参考: MYSQL 5.1 ALTER TABLE 语法

于 2014-03-31T02:58:31.960 回答
41

FOR MYSQL:

ALTER TABLE `table_name` CHANGE `old_name` `new_name` VARCHAR(255) NOT NULL;

FOR ORACLE:

ALTER TABLE `table_name` RENAME COLUMN `old_name` TO `new_name`;
于 2014-11-12T10:35:27.983 回答
14

编辑

您可以使用以下方法重命名字段:

ALTER TABLE xyz CHANGE manufacurerid manufacturerid INT

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

于 2010-10-23T03:37:42.467 回答
7

存在语法问题,因为更改命令的正确语法是ALTER TABLE tablename CHANGE OldColumnName NewColunmName DATATYPE;

于 2014-08-26T09:22:52.023 回答
2

使用 MySQL 5.x,您可以使用:

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name DATATYPE NULL DEFAULT NULL;
于 2014-10-22T08:48:29.957 回答
1

重命名 MySQL 中的列:

ALTER TABLE mytable CHANGE current_column_name new_column_name DATATYPE;
于 2017-05-06T17:08:52.800 回答
0

更改表更改;

例子:

ALTER TABLE global_user CHANGE deviceToken deviceId VARCHAR(255) ;
于 2019-03-16T19:32:02.530 回答
-5

句法

alter table table_name rename column old column name to new column name ;

例子:

更改表将列成本重命名为价格

于 2015-01-29T06:35:11.647 回答