或者这个表没有关联约束  我怎么让他实现这个限制  在或者我catch到了这个异常  怎么让接下来的语句继续执行呢

解决方案 »

  1.   

    create table T_GROUPFORBIDDENBOARD
    (
      data_time     VARCHAR2(20),
      region_name   VARCHAR2(100),
      group_id      VARCHAR2(20),
      group_name    VARCHAR2(100),
      fine_money    VARCHAR2(20),
      res       VARCHAR2(100),
      region_id     VARCHAR2(20),
      district_name VARCHAR2(20),
      login_no      VARCHAR2(20),
      operate_time  VARCHAR2(40)
    )
    tablespace USERTEMPCREATE UNIQUE INDEX T_GROUPFORBIDDENBOARD_time_id ON T_GROUPFORBIDDENBOARD(NVL2(data_time,group_id,NULL))
      tablespace USERTEMP
      
    至于报错信息就是在我插入时,我图片上的第一条插入语句因为是不满足唯一约束的条件所以报错。我主要是想实现插入表中的数据不能同时与表中的time和groupid都想同这个需求
      

  2.   


    SQL> 
    SQL> create table test
      2  (
      3    data_time     VARCHAR2(20),
      4    region_name   VARCHAR2(100),
      5    group_id      VARCHAR2(20)
      6  );
    Table created
    SQL> -- CREATE UNIQUE INDEX T_GROUPFORBIDDENBOARD_time_id
    SQL> -- ON T_GROUPFORBIDDENBOARD(NVL2(data_time,group_id,NULL));
    SQL> insert into test(data_time, group_id) values('201805','12');
    1 row inserted
    SQL> insert into test(data_time, group_id) values('201806','12');
    1 row inserted
    SQL> -- 观察一下这个结果
    SQL> select NVL2(data_time,group_id,NULL) new_value from test;
    NEW_VALUE
    --------------------
    12
    12
    SQL> drop table test purge;
    Table droppedSQL>