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);
  • 相关阅读:
    JAVA设计模式---总述篇
    Java中对象创建时的内存分配
    for循环打印空心菱形的新方法
    springcloud2.X通过actuator加载配置无效问题
    golang-错误处理
    golang-字符串
    golang-方法和接口
    golang-结构体与指针
    golang-数组、切片、映射
    golang-流程控制
  • 原文地址:https://www.cnblogs.com/sumsen/p/2524842.html
Copyright © 2011-2022 走看看