我有一个要求,我需要根据较低环境中的生产环境更改表结构。该表有一个多列主键作为 ( md_biobjectid
, projectid
, md_mapid
),我想将列 'md_mapid' 从 'md_mapid' 修改为 varchar(50) 默认空 NULL(50)NOT NULL。
当我运行查询时:更改表table_name修改列md_mapid
VARCHAR(50) 默认 NULL;它没有运行,我收到以下错误:错误代码:1171。主键的所有部分都必须不为空;如果需要键中的 NULL,请改用 UNIQUE。
两个环境的其他列结构是:'md_biobjectid' 瓦尔查尔(50) 非空默认值 ''
'PROJECTID' VARCHAR(50) 非空默认值 ''
MySQL版本:5.7.21日志。
你需要在没有后缀的情况下使用DEFAULT NULL
。 md_mapid列是复合主键的一部分,不能设置为 null。
alter table table_name modify column md_mapid varchar(50)