Db2 如何从DB/2获取特定表的静态编号

Db2 如何从DB/2获取特定表的静态编号,db2,static-indexers,Db2,Static Indexers,我们在DB/2数据库上使用ASP.NETMVC4。如何创建一种方法来避免数据并发,并为用户提供一个唯一的编号,以存储在表的唯一字段中,并在数据库端进行处理 如果我创建一个存储过程来执行此操作,我如何返回一个静态数字,以确保每次调用都将返回一个递增的数字,而不仅仅是检查特定列的最大值并添加一个。通过使用数据库事务…通过使用序列。。。你真的需要一个完全连续的数字,没有间隙吗?这实际上很少见-大多数时候,您只需要一个唯一的数字(这就是序列或自动生成的列得到的)MAX(column)+1实际上是一个非常

我们在DB/2数据库上使用ASP.NETMVC4。如何创建一种方法来避免数据并发,并为用户提供一个唯一的编号,以存储在表的唯一字段中,并在数据库端进行处理


如果我创建一个存储过程来执行此操作,我如何返回一个静态数字,以确保每次调用都将返回一个递增的数字,而不仅仅是检查特定列的最大值并添加一个。

通过使用数据库事务…通过使用
序列
。。。你真的需要一个完全连续的数字,没有间隙吗?这实际上很少见-大多数时候,您只需要一个唯一的数字(这就是
序列
或自动生成的列得到的)
MAX(column)+1实际上是一个非常糟糕的主意,不应该使用它。@HenkvanBoeijen-数据库事务在这里没有什么帮助。除非您的意思是针对
MAX(column)+1
场景,但这至少需要锁定整个表以进行更新(并可能进行读取,具体取决于该语句的使用方式),这将是任何并发系统中的一个主要问题。@Clockwork Muse-只需添加一个包含最新发布的编号的表,在db事务中读取并递增它(最好使用存储过程)。需要时,应用行锁定。