Oracle DB在不同的环境中获得相同的序列?

时间:2014-11-19 20:13:01

标签: sql database oracle

我在Oracle中有一个Schema,它也有许多链接的Schema,

我有四个基本环境Dev / Prod / INT / UAT。

我希望有一种机制,通过该机制,在Prod SCHEMA中为单个模式进行插入时,所有四个env上的序列生成为我提供了相同的值。

例如,表A有一个由Oracle序列生成器生成的Id列,我希望在Dev / UAT / INT上作为PROD的所有其他Oracle数据库实例上生成完全相同的值。

我需要这个的原因,

我为各种链接模式执行了很多Prod到UAT / Dev / INT转储,并且没有相同的序列,数据不足以进行分析,因为我不希望再次进行父模式转储

同样的任何细节都有帮助

日Thnx

2 个答案:

答案 0 :(得分:1)

如果您在一个数据库上只使用一个序列,那么每次调用" nextval"时都会从不同的数据库中调用该序列。它会算+1。如果您无法在一个会话中执行所有命令,则无法使用序列完成此操作。您可以创建自己的并根据需要处理(增加)它们。

答案 1 :(得分:1)

这不是一个序列的意图。如果在各种实例上以相同的顺序插入相同的行,那么它们应该使用相同的序列值,但这不是您想要依赖的。如果您希望能够跨多个实例比较数据,则应根据自然键(即数据本身)而不是合成数据(序列)进行比较。