sql数据库字段设置成not null的话,字段不设置默认值是不是就不能插入了?

2024-12-20 09:44:48
推荐回答(5个)
回答1:

是的,必须有默认值。

因为在SQL SERVER中NULL跟''是完全不一样的,NULL表示未知,没有类型可言,而''是有类型的,表示一个空的字符串。所以有not null约束的列是可以插入''的。

有时候做判断的时候可能某个列既有NULL值又有''值,这时候就经常用 where isnull(列名,'')=''进行判断。在ORACLE中,''是等同于NULL值进行处理的,这时候有not null约束的列就不能插入''了。

扩展资料:

SQL作为一种操作命令集, 以其丰富的功能受到业内人士的广泛欢迎, 成为提升数据库操作效率的保障。SQL Server数据库的应用,能够有效提升数据请求与返回的速度,有效应对复杂任务的处理,是提升工作效率的关键。

由于SQL Servers数据库管理系统具有较高的数据管理性能,因其优越的性能,应用范围非常广,大量应用于服务器和客户体系结构中。SQL Servers数据库的性质主要由以下几个方面体现:系统的吞吐量、响应时间以及并行处理能力, 发出请求服务器回应的速度、还有不同屏幕之间切换的速度等等。

参考资料来源:百度百科-SQL数据库

回答2:

如果是not null的话,那你就必须插入一个值,你不插入值的话,就会调用默认值。
如果这两个都没有的话,就会报错了
所以,改下你的insert
insert into zc_manager(user,pass,level) values('admin','123456',-1);

回答3:

sql数据库字段设置成not null的话,字段不设置默认值是不是就不能插入了?

是的,必须有默认值。貌似数字之类的它本身就有默认值0吧。

回答4:

not null 你都设置成不能为空了。 你怎么插入。 再有。 别人是不是设置了default ‘’ 了 你也没看到。 如果他设置了not null 并没有设置default的话 那么他也不能插入

回答5:

你可以把数据库的字段not null去掉,然后再执行~这样执行的时候,没有插入数据的字段就是null