电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

管理Oracle约束与分区表VIP免费

管理Oracle约束与分区表_第1页
1/8
管理Oracle约束与分区表_第2页
2/8
管理Oracle约束与分区表_第3页
3/8
1.约束作用:约束用于确保数据库数据的完整性,在oracle数据库中,可以使用约束,触发器和应用代码(过程,函数)3种方法实现数据完整性,这3种方法中,因为约束易于维护,并且具有最好的性能,所以实现数据完整性首选约束.分类:约束的种类有:notnull,unique,primarykey,foreignkey,checkNotnull确保字段值不能为空Unique:确保字段值唯一性Primarykey,最常用的约束(主键约束),主键约束的列值不仅不能重复,也不能为NULL,注意一张表最多只能有一个主键约束,当定义主键约束后oracle自动建立一个以主键为关键字段的索引。Foreignkey:定义了主从表之间的关系,foreign要定义在从表上,但主表必须具有主键约束或唯一约束,当定义froeignkey后外部键列的数据必须在主表的主键列中存在,或者为NULLCheck::用于强制表行数据必须满足的条件,如工资表,工人工资必须在2000-5000之间约束状态enablevalidate:是默认,新旧数据同时满足约束规则enablenovalidate:旧数据可以不满足,检新插入的数据要满足约束disablevalidate:不允许在表上执行任何DML操作,主要用在分区表,对于主键和唯一约事,会删除相应的唯一索引,但约束状态任可用disablenovalidate数据可不满足约束规则,对于主键和唯一约事,会删除相应的唯一索引,约束常用语句1.createtablet(inumber,vmubmernotnull)2.createtablet(inumber,vmubmerunique)3.createtablet(inumberconstraintpk_iprimarykey,vnumber)4.createtablet2(cnumber,dnumber,constraintfk_dforeignkey(c),referencest1(v));5.altertabletaddconstraintpk_iprimarykey(i)6.altertabletmodifyinotnull;7.altertabletaddconstraintt_iunique(i)[(createindexind_nameont(i))];8.altertabletaddconstraintt_icheck(iin(1,2,3,4,5));9.altertabletdisablenovalidateconstrainti10.altertabletenablenovalidateconstraintcheck_i11.altertabletdropconstrainti;12.altertabletdropprimarykeyi;#常用的数据字典1.dba_constraints2.dba_cons_columns3.user_cons_columns4.user_constraints简单应用检验当为一个表建立主键索时后,这个字段是否满足约束非空,唯一性,而且自动建立一个索引,并查看当把约束状态关闭再次插入相同的记录,是否还能把把约束设为enableividate状态。1.SQL>createtablet(inumberconstraintpk_iprimarykey,vnumber);2.SQL>insertintotvalues(1,2);3.SQL>insertintotvalues(3,4);4.SQL>commit;5.SQL>select*fromt;6.IV7.-------------------------------------8.129.34现在表中有两条记录,然后给它插主键为空或相同的值1.SQL>insertintotvalues('',10);2.ERRORatline1:3.ORA-01400:cannotinsertNULLinto("Y"."T"."I")4.SQL>insertintotvalues(1,10);5.ERRORatline1:6.ORA-00001:uniqueconstraint(Y.PK_I)violated可以看到全部报错,此时主键不能为空或重复查看是否建立索引1.SQL>selectindex_namefromuser_indexes;2.INDEX_NAME3.------------------------------4.PK_I把约束关闭再次做同样的操用1.SQL>altertabletdisablenovalidateconstraintpk_i;2.Tablealtered.3.SQL>insertintotvalues('',10);4.1rowcreated.5.SQL>insertintotvalues(1,10);6.1rowcreated.7.SQL>commit;8.Commitcomplete.9.SQL>select*fromt;10.IV11.--------------------12.1213.3414.1015.11016.SQL>selectindex_namefromuser_indexes;17.norowsselected可见当把约束关闭后就可以何意给表插数据了,而具索引也自动删除了。现在激活约束1.SQL>altertabletenablevalidateconstraintpk_i;2.altertabletenablevalidateconstraintpk_i3.ERRORatline1:4.ORA-02437:cannotvalidate(SYS.PK_I)-primarykeyviolated因为表中主键有相同的值所以不能恢复到enablevalidate状态了再次测试回复到enablenovalidate1.SQL>altertabletenablenovalidateconstraintpk_i;2.altertabletenablevalidateconstraintpk_i3.ERRORatline1:4.ORA-02437:cannotvalidate(SYS.PK_I)-primarykeyviolated也失败了,因为表中主键有了空值和相同的值,所以恢复不到enablevalidate状态,但enablenovalidate不检查旧数据所以...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

管理Oracle约束与分区表

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部