oracle-初学ORACLE数据库,关于非空约束问题请教大家。

问题描述

初学ORACLE数据库,关于非空约束问题请教大家。

建表的时候有些字段设置了not null,但是插入记录时并没有哪一行插入记录,为什么会报错了?01400,
比如所有A/B/C三个字段,A设置类not null 但是我要插入记录时并不需要给A插入记录,只想给B/C插入记录。insert int table_name(b,c) values(value1,values2);
这样,报错了,无法将null插入A这个很不理解,请求大神,帮助一下。

解决方案

你已经把A设置为非空了,当插入这个表的时候,其他的字段有内容,A为空的话,就变成不确定了,与约束相违背。

解决方案二:

你A已经约束不为空,就不能为null,如果想让A为空,可以用disable暂时禁用约束,等到又要用到约束时enable就行了,注意:启用约束时enable novalidate constraint,即不对前面已有的记录进行约束验证

时间: 2024-11-02 21:29:13

oracle-初学ORACLE数据库,关于非空约束问题请教大家。的相关文章

新增非空约束字段在不同版本中的演进

开发提了一个数据库变更需求,新增一字段,没有NOT NULL非空约束,但有默认值为NULL.看起来有些奇怪,因为若字段允许NULL,其默认值就是NULL,不用显示声明,可以创建一个无DEFAULT NULL的新增字段再查看desc表结构,就可以证明这点. 基于这问题,引申出的NOT NULL字段问题还有不少,也是比较容易忽视的一些细节,例如杨长老最近连续发表过两篇关于NOT NULL字段的文章确实很有启发, 非空字段空值对查询的影响 http://yangtingkun.net/?p=1481

[20120410]9i下索引与空值查询以及非空约束.txt

[20120410]9i下索引与空值查询以及非空约束.txt 前几天在优化9i的一条sql语句时,发现一个奇怪的现象,查询条件是is null,发现竟然可以使用索引,感觉很奇怪,再仔细看原来查询字段存在一个非空约束,对比了10g以及11g的版本,感觉10g与11g改进不少. 测试如下: 1.建立测试环境: SQL> select * from v$version; BANNER -----------------------------------------------------------

(再贴)在DataGridView中如何进行唯一性和非空约束处理

问题描述 在数据库中的物理表上分别为两个字段设置了NOTNULL和UNIQUE约束数据在UI上以DataGridView呈现,用户可以在直接在其中添加删除修改当用户的输入违反唯一性和非空性约束时,我应该在哪里处理?如何处理?我的意思是说:1.事先就为DataGridView的数据源中的字段设置好唯一性和非空约束,然后捕获DataGridView的异常2.还是不为DataGridView的数据源中的字段设置这些,而是当用户点击确定时,用代码逐行严正数据源中的数据是否符合约束然后再写入数据库 解决方

在DataGridView中如何进行唯一性和非空约束处理

问题描述 在数据库中的物理表上分别为两个字段设置了NOTNULL和UNIQUE约束数据在UI上以DataGridView呈现,用户可以在其中进行添加.删除.修改操作当用户的输入违反唯一性和非空性约束时,我应该在哪处理?如何处理? 解决方案 解决方案二:在用户添加,修改的时候验证,是空的就不让他写入.唯一性就在提交时根据他输入的值去数据库看下有没有,有了也不让操作.

[20170516]nvl与非NULL约束.txt

[20170516]nvl与非NULL约束.txt --前几天做的测试http://blog.itpub.net/267265/viewspace-2137853/,实际上差异没有这个大,因为第2个多数是常量. --今天测试nvl与非NULL约束的问题. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ --------

如何修改Oracle数据库为非归档模式

操作步骤如下: 步骤 1 以oracle用户登录服务器,执行以下命令进入SQLPLUS. oracle@smgwrpt:~> sqlplus "/as sysdba" 步骤 2 查看数据库当前归档模式. SQL> archive log list Database log mode              Archive Mode Automatic archival             Enabled Archive destination            U

数据库-vb.net提示未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。

问题描述 vb.net提示未能启用约束.一行或多行中包含违反非空.唯一或外键约束的值. 图片说明图片说明图片说明图片说明 解决方案 就是这个字段是唯一的.或者不能为空的.或者指向的外键必须存在等等,但是你插入的数据不满足. 解决方案二: 实在找不出问题在哪里了,麻烦你给看看吧,我上传了4张截图 解决方案三: 看你2,3两个图后,你完全没有数据验证 name,remark,mon没判断是否为空,date不是日期格式,mon是否可以转换成int,还有字符串长度判断

Oracle 12c CDB数据库中数据字典架构

数据字典就是元数据的集合,比如创建的表,列,约束,触发器等等这些都是元数据,需要保存到数据库中.除此之外,Oracle自身的一些数据库对象,如目录,PL/SQL代码等等这些都是元数据,都需要存放在数据字典中.随着12c 容器数据的普及,Oracle数据字典发生了哪些变化呢,下文即是具体描述. 一.数据字典及其形成 1.数据字典 数据字典是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEM与SYSAUX表空间内的若干段. SYS用户拥有所有的数据字典表,数据字典基本一般以结尾,如

Oracle初学点滴-(2)-OracleOraHome90Agent

oracle|初学 症状:原来是能启动的,但是在我改了域名和机器名之后就不能启动: 解决:1.删除%oracle_home%\network\agent\*.Q2.重新启动服务即可c:\agentctl start 以上内容源自:http://blog.csdn.net/tesge/archive/2004/07/16/42958.aspx 解释:OracleOraHome90Agent服务如果不能启动,则OIA也就不能运行,OIA不能运行则无法实现在OMS登陆后的Intelligent Age