在MySQL中,当我修改一个表并添加一个约束为NOTNULL的新属性时,当我使用update时,它仍然接受null
我使用的是MySQL,我有一个名为student的表,如下所示在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
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会给你一个错误。可能重复的