无法修改MySQL表中的列

时间:2018-12-27 09:45:05

标签: mysql sql

我有一个需求,其中我需要根据较低环境上的生产环境来更改表结构。该表具有一个多列 PRIMARY KEY,例如({rails generate migration AddCompanyToGarment company:references md_biobjectidprojectid,我想将列'md_mapid'修改为varchar (50)来自'md_mapid'varchar(50)不为空的默认空值。

当我运行查询时: 更改表table_name 修改列md_mapid varchar(50)DEFAULT NULL; ,该列不运行,并且出现以下错误: 错误代码:1171。PRIMARYKEY的所有部分都不能为NULL。如果键中需要NULL,请改用UNIQUE。

两个环境上的其他列结构是: 'md_biobjectid'varchar(50)NOT NULL DEFAULT''

'projectid'varchar(50)NOT NULL DEFAULT''

MySQL版本:5.7.21-log。

1 个答案:

答案 0 :(得分:0)

您需要没有DEFAULT NULL后缀的isse。 md_mapid列是复合主键的一部分,不能设置为null。

alter table table_name modify column md_mapid varchar(50)