无法修改mysql表中的列

mmvthczy  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(356)

这个问题在这里已经有答案了

多列主键中的空值(5个答案)
两年前关门了。
我有一个需求,我需要根据生产环境在较低的环境中更改表结构。该表有一个多列主键( md_biobjectid , projectid , md_mapid ),我想将“md\u mapid”列从“md\u mapid”varchar(50)not null修改为varchar(50)default null。
运行查询时:alter table table\u name modify column md_mapid varchar(50)默认为空;它没有运行,我得到以下错误:错误代码:1171。主键的所有部分都不能为空;如果需要在键中使用null,请改用unique。
两个环境中的其他列结构都是:“md\u biobjectid”varchar(50)not null default“”
“projectid”varchar(50)不为空默认值“”
mysql版本:5.7.21-log。

j5fpnvbx

j5fpnvbx1#

你需要在没有 DEFAULT NULL 后缀。md\u mapid列是复合主键的一部分,不能设置为null。

  1. alter table table_name modify column md_mapid varchar(50)

相关问题