重命名MySQL中的列时出错

如何重命名表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) 

独行侠非常接近…实际上,您还需要指定重命名列的数据types。 例如:

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

记住:

  • 将INTreplace为列数据types(需要)
  • Tilde / Backtick(`)是可选的

标准的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语法

对于MYSQL:

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

对于ORACLE:

 ALTER TABLE `table_name` RENAME COLUMN `old_name` TO `new_name`; 

编辑

你可以使用

 ALTER TABLE xyz CHANGE manufacurerid manufacturerid INT 

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

有一个语法问题,因为改变命令的正确语法是ALTER TABLE tablename CHANGE OldColumnName NewColunmName DATATYPE;

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

 ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name DATATYPE NULL DEFAULT NULL; 
 ALTER TABLE mytable CHANGE current_column_name new_column_name DATATYPE; 

句法

alter table table_name将列的旧名称更名新的列名 ;

例:

改变表格库的重命名成本 价格 ;