修改约束

目录

修改约束

创建数据库

添加约束

删除约束


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 语句为表添加约束

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/472687.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

王者荣耀使用的UDP通信,十几年编程没用过的协议

缘起 最近在查阅moba相关的资料时,看到了一篇王者荣耀的研发同学的技术分享,从文章中了解到王者荣耀的通信方式是UDP通信,回想到整个职业生涯,貌似并没有用过,今天特地整理下。 udp技术细节 udp协议 UDP协议叫做用…

代码随想录算法训练营三刷day29 | 回溯算法之 491.递增子序列 46.全排列 47.全排列 II

三刷day29 491.递增子序列回溯三部曲 46.全排列回溯三部曲 47.全排列 II 491.递增子序列 题目链接 解题思路: 回溯三部曲 递归函数参数 本题求子序列,很明显一个元素不能重复使用,所以需要startIndex,调整下一层递归的起始位…

c语言指针(二)

文章目录 c语言指针(二)1.数组名的理解2.使用指针访问数组3.一维数组的传参本质 c语言指针(二) 1.数组名的理解 int arr[10] { 1,2,3,4,5,6,7,8,9,10 }; int* p &arr[0]这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元…

系统设计实例(一)百万级别用户系统

二、百万级别用户系统 原则: 尽可能地缓存数据采用无状态Web层支持多个数据中心在 CDN 中托管静态资源通过分片扩展数据层将层级拆分为独立的服务 负载均衡器 负载均衡器会将传入的流量均匀分配给在负载均衡集合中定义的Web服务器,用户直接连接负载均…

【C++ leetcode】双指针问题(续)

3. 202 .快乐数 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结…

文件IO (File对象, 文件读写)

文件 狭义的文件: 硬盘上的文件和目录(文件夹) 广义的文件: 泛指计算机中的很多 软硬件资源 OS 中, 把很多硬件设备和软件资源抽象成了文件, 按照文件的方式来统一管理网络编程中, OS 把网卡当成了一个文件来操作 路径 绝对路径: 以盘符**(c: d: e:)**开头的路径 相对路径: 以 …

HarmonyOS ArkTS 通用事件(二十三)

通用事件目录 点击事件事件ClickEvent对象说明EventTarget8对象说明示例 触摸事件事件TouchEvent对象说明TouchObject对象说明示例 挂载卸载事件事件示例 点击事件 组件被点击时触发的事件。 事件 ClickEvent对象说明 从API version 9开始,该接口支持在ArkTS卡片中…

C++:继承:面向对象编程的重要特性

(❁◡❁)(●◡●)╰(*▽*)╯(*/ω\*)(^///^)(❁◡❁)(❁◡❁)(●◡●)╰(*▽*)╯(*/ω\*)(❁◡❁)(●’◡’●)╰(▽)╯(/ω\)(///) C:继承:面向对象编程的重要特性 前言**继承**1.继承的概念及定义1.1继承的概念1.2继…

学完Python的7大就业方向,哪个赚钱最多?

“ 我想学Python,但是学完Python后都能干啥 ?” “ 现在学Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少Python的初学者,都会遇到上面的这些问题。大家都知道Python很吃香,薪资…

英伟达 V100、A100/800、H100/800 GPU 对比

近期,不论是国外的 ChatGPT,还是国内诸多的大模型,让 AIGC 的市场一片爆火。而在 AIGC 的种种智能表现背后,均来自于堪称天文数字的算力支持。以 ChatGPT 为例,据微软高管透露,为 ChatGPT 提供算力支持的 A…

slab分配器

什么是slab分配器? 用户态程序可以使用malloc及其在C标准库中的相关函数申请内存;内核也需要经常分配内存,但无法使用标准库函数;linux内核中,伙伴分配器是一种页分配器,是以页为单位的,但这个…

【考研数学】零基础全年可实操规划+网课资料分析

我理解的零基础就是一点基础也没有,甚至来呢最基础的求极限都不会 其实大家可以参照我的经验,零基础数学二,经过一年的学习学习,最后考了122分 首先大家要有自信,我都行你们肯定也可以!其实考研数学真的没…

XCode升级错误:Command CompileC failed with a nonzero exit code 解决办法

升级完XCode之后,bulid失败,出现如下错误: 问题1: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrunCommand Compi…

【性能测试】JMeter:集合点,同步定时器的应用实例!

一、集合点的定义 在性能测试过程中,为了真实模拟多个用户同时进行操作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行操作或发送请求。 通过插入集合点可以较真实模拟多个用户并发操作。 (注意:虽然通过加入集合点可…

2024藏在身边的冷门暴利行业,普通人掌握这个方式也能轻松加入赚取100万!适合普通人轻资产创业项目!2024新的创业机会

如果说2024创业圈流传最多的话是什么,那一定是:“阶级固化了,翻身太难”、“2024机会太少了,赚不到钱”、“经济大环境不好,创业寒冬”云云。 其实这些抱怨都是毫无道理的,无论是国内还是国外,对…

突破图神经网络技术瓶颈!新阶段3大创新方向大幅提高模型性能

针对传统的图神经网络在处理非结构化数据、捕捉高阶关系等方面的局限性,研究者们提出了众多优化方案。 这其中,超图神经网络、几何图神经网络、动态图神经网络作为GNN发展的前沿方向,不仅提供了更加丰富和灵活的方法来处理各种复杂的图数据&…

基于ssm的航空售票系统

基于SSM的航空订票系统根据功能设计划分为管理员用户和注册用户,从这两种用户的功能所需展开设计,管理员对注册用户管理、航班管理、航班时刻管理、通知公告管理、订票管理、退票管理等;注册用户主要是注册成功后登录,机票查询&am…

基于 Vue3打造前台+中台通用提效解决方案(中)

33、实现全屏展示功能 我们知道在原生dom上,提供了一些方法来供我们开启或关闭全屏: Element.requestFullscreen()Document.exitFullscreen()Document.fullscreenDocument.fullscreenElement一般浏览器 使用requestFullscreen()和exitFullscreen()来实现 早期版本Chrome浏…

异常:程序出现的问题

目的:为了以后发现异常后怎么去处理 异常的作用

学点儿Java_Day7_在实体类当中IDEA无法进行单元测试(@Test没有启动按钮)

在敲代码体会继承和访问修饰符的时候忽然遇到了单元测试不管用的情况,表现为没有启动按钮   经过一番折腾,发现我的测试是在具有构造函数的实体类Person当中进行的,当我把所有的构造函数删除后,启动按钮又出来了,加…