Oracle在创建表时,为列添加not null约束,形式如下:

column_name data_type

[constraint constraint_name] not null

其中,constraint constraint_name 表示为约束指定名称。

也可以为已创建的表中添加not null约束,这时就需要使用alter table... modify语句,形式如下:

alter table table_name modify column_name [constraint constraint_name] not null;

删除not null约束

如果需要删除表中的裂伤的not null约束,依然是使用alter table...modify语句,形式如下:

alter table table_name modify column_name null;

具体的操作如下:

SQL> create table person(

2  pid number(4) not null,

3  pname varchar2(20),

4  psex char(2)

5  );

表已创建。

SQL> desc person;

名称                                      是否为空? 类型

----------------------------------------- -------- -------------------

PID                                      NOT NULL NUMBER(4)

PNAME                                              VARCHAR2(20)

PSEX                                              CHAR(2)

SQL> alter table person modify pname not null;

表已更改。

SQL> desc person;

名称                                      是否为空? 类型

----------------------------------------- -------- ------------------

PID                                      NOT NULL NUMBER(4)

PNAME                                    NOT NULL VARCHAR2(20)

PSEX                                              CHAR(2)

SQL> insert into person values(1,'aaa','女');

已创建 1 行。

SQL> insert into person values(1,'aaa',null);

已创建 1 行。

SQL> insert into person values(1,null,null);

insert into person values(1,null,null)                          *

第 1 行出现错误:

ORA-01400: 无法将 NULL 插入 ("SYSTEM"."PERSON"."PNAME")

SQL> alter table person modify pname null;

表已更改。

SQL> desc person;

名称                                      是否为空? 类型

----------------------------------------- -------- ------------------

PID                                      NOT NULL NUMBER(4)

PNAME                                              VARCHAR2(20)

PSEX                                              CHAR(2)

SQL> insert into person values(1,null,null);

已创建 1 行。

SQL>

0b1331709591d260c1c78e86d0c51c18.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐