sql数据库字段设置成not null的话,字段不设置默认值是不是就不能插入了?
执行了下insertintozc_manager(user,pass)values('admin','123456');报错#1364-Field'level'doesn...
执行了下insert into zc_manager(user,pass) values('admin','123456');
报错#1364 - Field 'level' doesn't have a default value
错误说level没有默认值,不过我以前都是字段没设置默认值的,都不可以插入的 展开
报错#1364 - Field 'level' doesn't have a default value
错误说level没有默认值,不过我以前都是字段没设置默认值的,都不可以插入的 展开
6个回答
展开全部
是的,必须有默认值。
因为在SQL SERVER中NULL跟''是完全不一样的,NULL表示未知,没有类型可言,而''是有类型的,表示一个空的字符串。所以有not null约束的列是可以插入''的。
有时候做判断的时候可能某个列既有NULL值又有''值,这时候就经常用 where isnull(列名,'')=''进行判断。在ORACLE中,''是等同于NULL值进行处理的,这时候有not null约束的列就不能插入''了。
扩展资料:
SQL作为一种操作命令集, 以其丰富的功能受到业内人士的广泛欢迎, 成为提升数据库操作效率的保障。SQL Server数据库的应用,能够有效提升数据请求与返回的速度,有效应对复杂任务的处理,是提升工作效率的关键。
由于SQL Servers数据库管理系统具有较高的数据管理性能,因其优越的性能,应用范围非常广,大量应用于服务器和客户体系结构中。SQL Servers数据库的性质主要由以下几个方面体现:系统的吞吐量、响应时间以及并行处理能力, 发出请求服务器回应的速度、还有不同屏幕之间切换的速度等等。
参考资料来源:百度百科-SQL数据库
展开全部
如果是not null的话,那你就必须插入一个值,你不插入值的话,就会调用默认值。
如果这两个都没有的话,就会报错了
所以,改下你的insert
insert into zc_manager(user,pass,level) values('admin','123456',-1);
如果这两个都没有的话,就会报错了
所以,改下你的insert
insert into zc_manager(user,pass,level) values('admin','123456',-1);
追问
我刚刚看教程里那个人字段也都是not null,默认也是没的
$_sql = "INSERT INTO manage (user,pass) VALUES ('admin', '123456')";
$_stmt = $this->pdo->prepare($_sql);
$_stmt->execute();
为什么他的能执行...
追答
他有没有trigger嘛?你看过么?
trigger里面还是可以补入值的。
还有,你干嘛非要学人家呢, 这是基本的错误,没必要拿别人的来看。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql数据库字段设置成not null的话,字段不设置默认值是不是就不能插入了?
是的,必须有默认值。貌似数字之类的它本身就有默认值0吧。
是的,必须有默认值。貌似数字之类的它本身就有默认值0吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
not null 你都设置成不能为空了。 你怎么插入。 再有。 别人是不是设置了default ‘’ 了 你也没看到。 如果他设置了not null 并没有设置default的话 那么他也不能插入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以把数据库的字段not null去掉,然后再执行~这样执行的时候,没有插入数据的字段就是null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询