Oracle数据库设计——定义约束 Not NULL约束 Default values

本文详细介绍了Oracle数据库中的Not Null约束和默认值设置。解释了Not Null约束在冲突时为何不包含约束名,以及如何创建带有默认值的字段。同时,讨论了在维护约束时的DISABLE和ENABLE操作,包括NOVALIDATE选项的影响和风险。文章还提到了在处理主键和Unique约束时,与索引和外键的关系。
摘要由CSDN通过智能技术生成

Not Null约束
not null约束常常被归于“强制”约束。

CREATE TABLE temp(id NUMBER(1) NOT NULL);

CREATE TABLE temp(id NUMBER(1) CONSTRAINT nn_temp_id NOT NULL);

为什么我们为Primary key, unique, foreign key, 和chech约束命名,有一个重要原因是:
    Oracle约束冲突错误信息包含了约束名,这是一个非常有用的的信息,让我们可以在没有查看数据字典和引起错误的研究代码前迅速的定位分离出问题.
而not null冲突错误信息中没有约束名,因为它包含了字段名
CREATE TABLE temp
 (N1 NUMBER constraint nn_1 NOT NULL,
  N2 NUMBER constraint nn_2 NOT NULL,
  N3 NUMBER constraint nn_3 NOT NULL);

INSERT INTO temp VALUES (1, null, 1);
将会产生:
ORA-01400: cannot insert NULL into ("SCOTT"."TEMP"."N2")

Default Values(默认值)

看一下下面一个例子:
CREATE TABLE TEMP (id NUMBER, value NUMBER);
INSERT INTO temp             VALUES (1, 100);
INSERT INTO temp (id, value) VALUES (1, 100);
INSERT INTO temp (id)        VALUES (2);

前两行Insert语句是一样的,第三条在Value字段中插入了一个NULL值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值