是否可以限制oracle数据库中的并发插入

时间:2015-11-25 05:49:45

标签: java database oracle

我必须在oracle数据库中限制并发插入。

没有手动检查是否可行 或者oracle数据库中有什么限制同一用户的第二个事务 或者jdbc中有什么内容吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用物化视图来定义这样的约束。

第一种方法:

create table froc3(id number,
                   userid number,
                   starttime date,
                   endtime date,
                   constraint froc3_id unique(id));

create materialized view froc3_mv refresh on commit as
  select f1.id as id, f2.id as id_conflict
    from froc3 f2, froc3 f1
   where f2.userid = f1.userid
     and f2.id <> f1.id
     and (f2.starttime between f1.starttime and f1.endtime or
         f2.endtime between f1.starttime and f1.endtime);

alter table froc3_mv add constraint check_interval check(id =
                                                         id_conflict) deferrable;