zoukankan      html  css  js  c++  java
  • 第一次使用oracle约束|补充客商名称重复|

    2012.07.10号更新重复客商的约束:

    1 直接使用alter会报错,因为之前没有使用约束,oracle中已经有了重复的客商

    SQL> alter table bd_cubasdoc add constraint one_custname unique(custname);
     
    alter table bd_cubasdoc add constraint one_custname unique(custname)
     
    ORA-02299: 无法验证 (XMV502.ONE_CUSTNAME) - 找到重复关键字

    2,得到itpub版主ZALBB的指示:尝试:先建普通索引,再建唯一性约束,使用先前的普通索引,enable novalidate。

    下图在plsql上可视化的创建普通索引

    或者

    create index ONE_NAME on BD_CUBASDOC (CUSTNAME)

    之后使用enable novalidate达到对数据库中已有重复客商的忽略(novalidate:无效)

    SQL> alter table bd_cubasdoc add constraint one_custname unique(custname) using index enable novalidate;
     
    Table altered

    或者

    SQL>  alter table BD_CUBASDOC add constraint ONE_CUSTNAME unique (CUSTNAME)  rely enable novalidate;
     
    Table altered

    或者

    SQL> alter table BD_CUBASDOC add constraint UCNAME unique (CUSTNAME)  enable novalidate;
     
    Table altered

     上面table altered之后,通过查看表或者constraint,发现keys多了一行unique

    ps:如果是check约束,会在右边的checks增加一行。

    通过,同我的trigger效果一样

    下面是oracle后台跑的代码

    删除keys中的unique:

    alter table BD_CUBASDOC
      drop constraint ONE_CUSTNAME cascade;

    创建时候:

    create index ONE_NAME on BD_CUBASDOC (CUSTNAME)
      tablespace NNC_DATA01
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 256K
        next 256K
        minextents 1
        maxextents unlimited
        pctincrease 0
      );

    alter table BD_CUBASDOC
      add constraint ONE_CUSTNAME unique (CUSTNAME);
  • 相关阅读:
    1.python的一些规范
    linux 命令总结
    【背包专题】D
    【算法入门竞赛经典】【7.2枚举排列】
    【练习赛补题】问题 E: 花生采摘 【模拟】
    【背包专题】B
    【背包专题】A
    【ACM对拍程序~】
    【背包专题】E
    河南省第七届大学生程序设计竞赛 问题 A: 物资调度【简单dfs】
  • 原文地址:https://www.cnblogs.com/sumsen/p/2524842.html
Copyright © 2011-2022 走看看