此时错误信息是:ORA-00001: 违反唯一约束条件 (SCOTT.PERSON_PID_PK) PERSON_PID_PK,就表示之前在建立数据库表的时候指定的约束名称。
2) 非空约束(NOT NULL)
使用非空约束,表示一个字段的内容不许为空
范例:插入空姓名
错误提示中已经明确指明了错误发生的字段名称。非空约束不能像主键约束一样指定名称。
3) 唯一约束(UNIQUE)
表示一个字段中的内容是唯一,其他列不允许重复。 范例:假设姓名不允许出现重名的情况
第一条数据正常插入,第二条数据出现错误,错误信息也是使用自动的约束编号,也可以指定约束的名称,用CONSTRAINT
4) 检查约束(CHECK)
使用检查约束来判断一个列中插入的内容是否合法,例如年龄的取值范围、性别的取值范围
范例:插入错误的年龄
出现错误,错误信息也是使用自动的约束编号,也可以指定约束的名称,用CONSTRAINT
5) 外键约束
在两张表中进行约束。为什么需要?
范例:要求完成一个程序,一本书要属于一个人,书本身应该是一张表,一本书必然有一个字段表示属于哪个人
创建表后,插入测试数据:
下面插入以下的数据:
按道理,此编号的人员不存在,该条数据肯定不应该插入。此时要解决这样的问题,就要使用主-外键关联,关联之后子表的数据要跟随父表的数据内容。
此时可以保证两张表的数据的完整性,不会出现找不到对应数据的情况。
在使用主-外键关联的时候注意:在子表中设定的外键必须是父表的主键;删除时应该先删除字表,再删除父表。
级联删除:
1.删除子表的时候,可以强制删除父表,不管约束,但是这种做法一般不使用。 语句是:
DROP TABLE book CASCADE CONSTRAINT;
2.若有子表中数据关联了父表,则无法删除父表中的这一项。要想完成删除的话,必须先将父表中的对应数据先删除掉。
如果希望在表数据删除时,可以自动删除掉其对应的子表记录,可以使用级联删除。
可以看到删除父表的人的时候,相应的子表中的书也被删除了。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新综合文库Oracle从头开始 (5)全文阅读和word下载服务。
相关推荐: