Lotus notes lotus Notes数据库中没有重复

Lotus notes lotus Notes数据库中没有重复,lotus-notes,lotus,lotusscript,lotus-formula,Lotus Notes,Lotus,Lotusscript,Lotus Formula,大家好 如果我使用重新缓存来更新数据,会产生什么影响? 我会解释这个想法, 在这个文本框中,它将调用我数据库中的最后一个数字并添加1,但我发现这有一个问题,如果多个用户使用此表单,则该数字可能会重复。@if(@IsNewDoc;@Elements(@DbColumn(“:“nocache”;@DbName;“GPA”;1))+1;@Return(GPnum)) 我的想法引导我走这条路,如果我使用@dblookup查找我的号码中是否有重复,但我无法通过。Recache不会帮助你避免重复 您正试图

大家好

如果我使用重新缓存来更新数据,会产生什么影响?

我会解释这个想法, 在这个文本框中,它将调用我数据库中的最后一个数字并添加1,但我发现这有一个问题,如果多个用户使用此表单,则该数字可能会重复。
@if(@IsNewDoc;@Elements(@DbColumn(“:“nocache”;@DbName;“GPA”;1))+1;@Return(GPnum))


我的想法引导我走这条路,如果我使用@dblookup查找我的号码中是否有重复,但我无法通过。

Recache不会帮助你避免重复

您正试图在LotusNotes中增加一个计数器,以便为文档创建唯一的顺序标识符。这个问题已经被许多人讨论了很多次,至少20年了。您可以在StackOverflow以及其他各种论坛、博客和文章中找到好的信息。有效的两种方法是

  • 将最后一个计数器值存储在配置文档中,并使用文档锁定来确保不会有两个用户同时访问和更新它
  • 不要直接在用户代码中设置计数器变量。编写代码将“挂起”值放入字段中,并依赖仅在一台服务器上运行的计划或触发的后台代理来设置最终值。(由于代理管理器保证一个数据库中一次只能运行一个代理,因此不会发生冲突。)
  • 不要对标识符使用顺序计数器。改用
    @Unique
    功能。文档将具有唯一的代码,而不是唯一的编号
请参阅答案、答案和文章