Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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中,当我修改一个表并添加一个约束为NOTNULL的新属性时,当我使用update时,它仍然接受null_Mysql - Fatal编程技术网

在MySQL中,当我修改一个表并添加一个约束为NOTNULL的新属性时,当我使用update时,它仍然接受null

在MySQL中,当我修改一个表并添加一个约束为NOTNULL的新属性时,当我使用update时,它仍然接受null,mysql,Mysql,我使用的是MySQL,我有一个名为student的表,如下所示 Name Idnumber 'tony' 1 'jimmy' 2 我将使用下面的查询再添加一列 alter table student add location varchar(20) not null; 现在,如果我使用这个查询 insert into student (Name,IdNumber,location) values('john',8,null); updatestuden

我使用的是MySQL,我有一个名为student的表,如下所示

Name       Idnumber
'tony'        1
'jimmy'       2
我将使用下面的查询再添加一列

alter table student add location varchar(20) not null;
现在,如果我使用这个查询

insert into student (Name,IdNumber,location) values('john',8,null);
updatestudent set location=null,其中name='tony'

正在将null值插入表中。下面是我拿到的桌子

Name       IdNumber         location
'tony'       1                 null
'jimmy'      2       
既然我在修改表时将location设置为notnull,为什么它仍然接受null?另外,如果我尝试使用

insert into student(Name,IdNumber) values('robert',3); 
查询未要求位置的not null值。'“Not Null”约束仅在我使用查询时有效

insert into student (Name,IdNumber,location) values('john',8,null);
请告诉我为什么“notnull”约束在上述其他情况下不起作用

谢谢,
Vivek G

它不工作,因为您的表上已经有行了。我认为mysql在这种情况下忽略了这个约束。但不确定。当您创建列时,默认情况下它将具有空值,因此您无法创建具有将被忽略的约束的列。其他RDBMs会给你一个错误。可能重复的