Oracle序列重复

时间:2018-01-26 06:39:15

标签: c# asp.net-mvc oracle10g

我的应用程序部署在不同的站点上,但使用单个数据库的集中式架构。问题是我选择序列不重复db中的数据但我们在多个站点序列重复部署的应用程序是我的代码

entryid = objDB.CallSequence("SEQ_RESULTTEST");

var query = "SELECT " + HttpContext.Current.Session["bookcode"] + "." + SQ_NAME + ".nextval from dual";
OleDbCommand cmd = new OleDbCommand(query.ToUpper(), cn);
string maxcode = cmd.ExecuteScalar().ToString();

当同时访问多个站点时,此entryid包含相同的值请建议我不应重复的内容。

1 个答案:

答案 0 :(得分:0)

在"集中式数据库"中创建一个序列。在本地,通过数据库链接为其创建同义词。这样做,所有站点都将使用相同的序列。

以下是一个例子:

SQL> create database link dblp 
  2  connect to pek identified by jzv
  3  using 'centralized_db';

Database link created.

SQL> -- does it work?
SQL> select * from dual@dblp;

D
-
X

SQL> -- a synonym 
SQL> create synonym s_seqa for seqa@dblp;

Synonym created.

SQL> select s_seqa.nextval from dual;

   NEXTVAL
----------
5354227730

SQL>