在多线程环境中插入记录

时间:2018-08-24 14:19:29

标签: java oracle plsql

给我下面的情况。

我们必须在表中插入数据。因为它是多线程环境,所以将从多个进程中插入数据。假设有5个进程p1,p2,p3,p4,p5,它们将在表emp中插入数据。现在,所有过程都将标识列作为现有记录的下一个值插入。假设标识当前值为100,那么下一个值将通过插入记录的过程递增。任何进程都可以随时插入记录。

所有过程可以同时插入记录。没有使用oracle序列,并且表中没有主键。我们如何在流程结束时处理重复。当同时插入多个进程时,它们需要确保不必插入重复项。我们如何实现这一目标。

我建议前端应用程序Java和多线程中的序列化。仍然我被拒绝了。您能否请您帮助在PL / SQl或Java中实现这一目标

1 个答案:

答案 0 :(得分:1)

您是否尝试在INSERT INTO查询中生成“ ID”键?

赞:insert into emp(id) values ((select max(id)+1 from empid)) ?

它需要另一个表来存储最大当前ID(在我的示例中为empid),但是它可以工作,并且您的程序无法管理要插入的ID。 因此,在多线程中,同步应该由DB完成(因为2插入不能完全在同一时间完成,因此应该始终更新该值)。