在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的列名使用“
,则无效。请不使用任何内容或使用`。