在MySQL中重命名列时出错

在MySQL中重命名列时出错,mysql,database,alter-table,mysql-error-1025,Mysql,Database,Alter Table,Mysql Error 1025,如何重命名表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) 编辑 可以使用以下命令重命名字段

如何重命名表
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)
编辑 可以使用以下命令重命名字段:

ALTER TABLE xyz CHANGE manufacurerid manufacturerid INT

独行侠离我们很近。。。实际上,还需要指定重命名列的数据类型。例如:

ALTER TABLE `xyz` CHANGE `manufacurerid` `manufacturerid` INT;
记住:

  • 将INT替换为任何列数据类型(必需)
  • 波浪号/反勾号(`)是可选的

  • 标准的Mysql重命名语句是:

    ALTER[ONLINE | OFFLINE][IGNORE]表tbl_名称
    更改[列]旧列名称新列名称列定义
    [第一个|在col|u名称之后]
    
    对于此示例:

    ALTER TABLE xyz CHANGE manufacturerid manufacturerid数据类型(长度)
    

    参考:

    存在语法问题,因为alter命令的正确语法是
    alter TABLE tablename CHANGE OLDCLUMNNAME NEWCLUMNNAME DATATYPE

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

    ALTER TABLE table_name
    CHANGE COLUMN old_column_name new_column_name DATATYPE NULL DEFAULT NULL;
    
    对于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 global_user CHANGE deviceToken deviceId VARCHAR(255) ;
    

    将表重命名列成本价格

    在MySQL中重命名列:

    ALTER TABLE mytable CHANGE current_column_name new_column_name DATATYPE;
    
    改变表格

    例如:

    ALTER TABLE global_user CHANGE deviceToken deviceId VARCHAR(255) ;
    

    您正试图更改一个包含外键引用的表。可能与#1064重复-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,在第1行的“”附近使用正确的语法。这将很有用,但与您引用的文档不同:“当您使用更改或修改时,列定义必须包括数据类型和应应用于新列的所有属性[…]原始定义中存在但未为新定义指定的属性不会结转。“它必须是“ALTER TABLE xyz CHANGE manufacturerid manufacturerid datatype(length)”,我认为该列包含一个外键以获取答案错误,因此您必须删除外键、更改表和添加外键(最好先备份)您只需在右键单击表中更改名称即可更改它-alter table请记住,在该解决方案中,您将丢失所有其他列定义,如可空性、默认值等(请参见:)。因此,基本上,您不必使用
    修改列
    (用于重新定义列),它是
    更改列新建列
    显示创建表的表名
    可以帮助您确定当前列definition@Dejan谢谢,这真的很烦人,当你不能指定任何其他修饰符时,为什么需要一个类型?要么需要一个类型+修饰符,要么根本不需要它。在mysql中,重命名用于重命名表not列,若要重命名列,请使用CHANGE。问题是MySQL-这在MySQL中是无效的语法。正如其他人所指出的,请使用有效的MySQL语法。存在无效的MySQL语法。如果对MySQL的列名使用
    ,则无效。请不使用任何内容或使用`。