Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法修改MySQL表中的列_Mysql_Sql - Fatal编程技术网

无法修改MySQL表中的列

无法修改MySQL表中的列,mysql,sql,Mysql,Sql,我有一个需求,其中我需要根据较低环境上的生产环境更改表结构。该表有一个多列主键(md\u biobectId,projectid,md\u mapid),我想将列'md\u mapid'修改为varchar(50)默认为NULL从'md\u mapid'varchar(50)非NULL 运行查询时: 更改表格名称 修改列md_-mapidvarchar(50)默认为空它没有运行,我遇到以下错误: 错误代码:1171。主键的所有部分都不能为空;如果密钥中需要NULL,请改用UNIQUE 两个环境中

我有一个需求,其中我需要根据较低环境上的生产环境更改表结构。该表有一个多列主键(
md\u biobectId
projectid
md\u mapid
,我想将列'md\u mapid'修改为varchar(50)默认为NULL'md\u mapid'varchar(50)非NULL

运行查询时: 更改表格名称 修改列
md_-mapid
varchar(50)默认为空
它没有运行,我遇到以下错误: 错误代码:1171。主键的所有部分都不能为空;如果密钥中需要NULL,请改用UNIQUE

两个环境中的其他列结构为: “md_BioObjectId”varchar(50)非空默认值“”

“projectid”varchar(50)不为空默认值“”


MySQL版本:5.7.21-log。

您需要在不使用默认空值的情况下使用isse。md_mapid列是复合主键的一部分,不能设置为null

alter table table_name modify column md_mapid varchar(50) 

这说明了确切的原因。可以使用单个列生成主键。您可以将这三列设置为唯一的,因为您试图做的是违反每个主键约束的规则。您能告诉我们为什么在主键中需要空值吗?