网站 编程语言建站论坛
news/
2025/9/24 7:26:28/
文章来源:
网站 编程语言,建站论坛,宁波外贸网站建设,wordpress 摘要不显示Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
主键约束可以看成是非空约束再加上唯一约束
也就是说设置为主键列#xff0c;不能为空#xff0c;不能重复
像一般用户编号是不可能重复的#xff0c;也不可能为空的
…Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
主键约束可以看成是非空约束再加上唯一约束
也就是说设置为主键列不能为空不能重复
像一般用户编号是不可能重复的也不可能为空的
-- 删除数据表
drop table member PURGE ;
-- 创建数据表
create table member(mid NUMBER,name VARCHAR2(20) NOT NULL,CONSTRAINT pk_mid PRIMARY KEY(mid)
) ;
下面就测试一下这个主键约束的作用首先向数据表中添加一行数据
insert into member(mid,name) values(1,张三) ;
下面继续向该数据表中增加下面的数据 这行代码将主键内容设置为 null
insert into member(mid,name) values(null,李四) ;代码运行后出现错误信息“ORA-01400: 无法将 NULL 插入 (SCOTT.MEMBER.MID)”。说明把 null 数据添加到主键字段中是不允许的
下面继续添加数据这次添加的数据是主键信息重复
insert into member(mid,name) values(1,李四) ;
代码运行后出现错误信息“ORA-00001: 违反唯一约束条件 (SCOTT.PK_MID)”
因为前面 mid字段已经有“1”这个值现在新添加的记录的 mid 字段的值仍然是“1“不符合主键唯一的限制
通过这两个错误信息就已经可以确定主键就是两个约束的集合体即非空约束和唯一约束
在绝大多数情况下一张表只能够定义一个主键信息当然从 SQL 语法的角度来说是允许定义多个列为主键这样的操作往往称为复合主键
如果是复合主键则表示这若干个列的内容完全重复的时候才称为违反约束
-- 删除数据表
drop table member purge;
-- 创建数据表
create table member(mid NUMBER ,name VARCHAR2(20) ,CONSTRAINT pk_mid PRIMARY KEY(mid,name)
) ;
此时将 mid 与 name 两个字段同时定义为主键所以当两个字段完全重复时才表示违反约
insert into member(mid,name) values (1,张三) ;
insert into member(mid,name) values (1,李四) ;
insert into member(mid,name) values (2,李四) ;
此时mid 与 name 两个字段内容都重复才违反约束只有一个字段内容重复不违反约束
数据库设计的第一原则不要使用复合主键。即一张表就一个主键
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915198.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!