Oracle 10G中关于约束在表和列中使用详解.doc

Oracle 10G中关于约束在表和列中使用详解.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 10G中关于约束在表和列中使用详解

Oracle 10G中关于约束在表和列中使用详解. 2010-02-22 18:25 by chenkai, 280 visits, 收藏, 编辑 A:Check约束代码 ?1?--创建表 ?2?create?table?order_status ?3?( ?4???id?integer?constraint?order_status_pk?primary?key?, ?5???status?varchar(120)?, ?6???last_modified?date?default?sysdate ?7?); ?8?--添加Check约束 ?9?alter?table?order_status? 10?add?constraint?order_status_ck?check?(status?in(BeiJing,ShangHai,TaiWan)); 11? 12?alter?table?order_status 13?add?constraint?order_status_id_ck?check(id10); 14?--测试数据 15?insert?into?order_status(id,status) 16?values(132,ShangHai); 注意: (1)在创建Check约束时,表中所有的行必须满足添加约束条件, 如果在添加约束已经存在数据 条件不满足会提示一个ORA-02293错误:截图如下: 一般处理在添加约束前最好清空原表中数据,上面提示错误有一个例外:在添加约束将其禁用. 这就涉及到启用约束和禁用约束操作.后面详解.还可以指定Enable Novalidate选项.从而使约束只适用于新添加数据.而不必管约束添加前数据.在插入数据时如果数据不符Check约束会提示一个ORA-02290错误.修改插入数据即可. B:Not Null约束 代码 ?--添加上述创建表?not?null约束 ?alter?table?order_status ?modify?status?constraint??order_status_newref?not?null; ? ?alert?table?order_status ?modify?last_modified?not?null; ? ?格式:注意使用Modify?而非以前使用的Add?Constraint ?格式如下: ?alert?table?[表名]?modify?[表中列名]?constraint?[约束唯一标示]?not?null; ?注意: A1:在为Last_modified添加约束时 并没有使用约束命名 是允许的 系统会自动分配一个名称来标识. 但建议使用手动使用一个有意义的命名 出现错误容易判断出处 C:Foreign Key外键约束. 代码 ?1?--创建一个外键约束测试表 ?2?create?global?temporary?table?test_orderstatus ?3?( ?4???id?integer?constraint?order_statustest_pk?primary?key, ?5???status_id?number(15), ?6???status?varchar(120), ?7???last_modifieddate?date?default?sysdate ?8?); ?9? 10?--添加一列?先删除?后添加 11?alter?table?test_orderstatus 12?drop??column?status_id; 13? 14?alter?table?test_orderstatus 15?add?constraint?order_status_modify_fk?status_id?reference?order_status(id); 16? ??对Foreign key 使用On Delete Cascade子句.即指定当父表中删除一行记录时 回自动删除子表中于其外键关联的行记录. 1?--附带自动级联更新 2?alter?table?test_orderstatus 3?drop??column?status_id; 4? 5?alter?table?test_orderstatus 6?add?constraint?order_status_modify_fk?status_id?reference?order_status(id)?on?delete?cascade; ?当在删除了父表一条记录时可以不删除子表记录. 全部设置字表中于外键关联所有记录为Null 则使用On Delete Cascade Null子句. 同样加在 外键约束后位置.当删除一条父表记录时.字表所有通过当前外键

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档