zoukankan      html  css  js  c++  java
  • oracle 约束constraint

    写这篇的目的是为了自己以后更好的复习,很多都是参照网上的。

    oracle约束可以检查出不符合业务的需求

    Oracle约束按约束状态又可分为disable novalidate,disable validate,enable novalidate,enable validate. 其中disable/enable代表是否启用约束,validate/novalidate代表启用约束时是否对表中原有数据作检查。

    1.创建表

     create table t1(

    id number,

    name varchar2(20));

    insert into t1 values(1,'A');

    insert into t1 values(1,'B');
    commit

    2.添加约束条件(约束条件很多,check,NOT NULL 等) 准备在下篇中详细介绍

     alter table t1 add constraint pk_t1 primary key (id)  deferrable enable novalidate;

       此时主键已经生效,但源表中包含不符合约束的数据

    3.如果将约束状态更改为 enable validate,却发现原有数据有问题

       alter table t1 enable validate constraint pk_t1;(会报错

    4.建立一个异常表(这两种都可以的)

    SQL>@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlexpt1.sql 
    create table exceptions(row_id rowid,

    owner varchar2(30),

    table_name varchar2(30),

    constraint varchar2(30));

    5.然后将异常数据插入异常表

    alter table t1 enable validate constraint pk_t1 exceptions into exceptions; 

    6.根据对应表找出对应的异常数据进行修改

    select id,name from t1 where rowid in(

    select row_id from exceptions) FOR UPDATE;





     

  • 相关阅读:
    html不点击提交,自动post
    wpf slider刻度
    visual studio 的 code snippet(代码片段)
    更换手机号之前
    post提交
    动态修改settings
    获取文件数据流+叠加byte数组(给byte数组加包头包尾)
    装箱与拆箱
    ue4中窗口打开web地址
    C++通过Callback向C#传递数据,注意问题
  • 原文地址:https://www.cnblogs.com/wujin/p/2348377.html
Copyright © 2011-2022 走看看