是的,必须有百默认值。
因为在SQL SERVER中NULL跟''是完全不一样的,NULL表示未知,没有类型可言,而''是有类型的,表示一个空的字符串。所以有not null约束的列是可以插入''的。
有时候做判断的时候可能某个度列既有NULL值又有''值,这时候就经常用 where isnull(列名,'')=''进行判断。在ORACLE中,''是等同于NULL值进行处理的,这时候有not null约束的列就不知能插入''了。
视图,这是表(table)啊你想啊,not null的意思是什么,不可为空啊,
你新增加的列,哪儿能有值呢?所以肯定为空啊;矛盾了,所以不能这么做。
2个办法试试:
1. 增加列的同时,指定列的默认值:alter table HTC add column Camera nchar(50) not null default('abc')
2. 将现有列中为空的值,都设置成默认值,然后再修改为not null
update htc set camera = 'abc' where camera is null
alter table HTC
alter column Camera nchar not null
不允许这个字段为空值,写代码的话,在字符类型后面加上就可以了,例如:
create table emp (
id varchar2(10) not null, --这个字段不能为空
name varchar2(10)
)
除了强制设定not null的,建表后,主键、分区字段等都是非空的。
扩展资料:
not null:
comment的作用是给表创建备注,not null 意思是给字段不允许为空,是一个固定的语句表示给表创建的备注不允许为空,如果改为comment null那意思就是可以为空了。
数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的 *** 纵与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除 *** 作和数据库的用户管理、权限管理等。
参考资料来源:百度百科-数据库
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)