修改约束

本文介绍了Oracle数据库中约束的管理,包括约束应在表创建时确定,不能修改已存在的约束;如何添加主键、唯一、检查和外键约束,以及如何处理非空约束。强调了在设计阶段考虑约束的重要性。
摘要由CSDN通过智能技术生成

目录

修改约束

创建数据库

添加约束

删除约束


Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645

修改约束

如果说表结构的修改还在可以容忍的范畴之内,那么约束的修改是绝对 100% 禁止的

所有的约束一定要在表创建的时候就设置完整

实际上约束可以进行后期的添加以及后期的删除操作。如果要想进行这样的维护,那么必须要保证有约束名称

创建数据库

-- 删除数据表
drop table member purge ;
-- 创建数据表
CREATE TABLE member(
	mid    NUMBER,
	name    VARCHAR2(20) 
) ;
INSERT INTO member(mid,name) VALUES (1,'张三') ;
INSERT INTO member(mid,name) VALUES (1,'李四') ;
INSERT INTO member(mid,name) VALUES (2,null) ;

添加约束

alter table 表名称 add CONSTRAINT 约束名称 约束类型 ( 字段 ) 选项 ...

下面就为 member 表增加主键约束

ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid) ;

因为此时表中已经存在有相同的 ID 编号了,所以这个时候约束是不可能创建成功的

如果想创建成功这个约束,就必须把数据表中对应列中重复的数据删除

delete from member where mid=1

运行完这条删除语句后,再运行原先的修改约束语句,就可以成功修改

利用以上的语法可以实现 4 种约束的增加:主键、唯一、检查、外键,但是不包含非空

如果要想为字段增加非空约束,只能依靠修改表结构的方式完成

ALTER TABLE member MODIFY (name VARCHAR2(20) NOT NULL) ;

但是需要保证此时 name 列上没有 null 值。例如,如果要修改的表中有 null 列的时候,会出现如下情况

删除约束

alter table 表名称 drop CONSTRAINT 约束名称 ;

下面代码删除主键约束

ALTER TABLE member DROP CONSTRAINT pk_mid ;

综合来说,不要去修改表结构,约束一定要和数据表一起创建

对约束的定义既可以在 CREATE TABLE 语句中进行,也可以在 ALTER TABLE 语句中进行

在实际应用中,通常是先定义表的字段,然后再根据需要通过 ALTER TABLE 语句为表添加约束

当然,最好是在数据库创建之前,对每个数据表中字段规划好是否需要约束,在创建表的时候同时创建约束

一个数据表只能有一个主键约束,如果一个表已经存在主键约束,此时如果再添加主键约束,系统会提示错误信息

 

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子味冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值