gpt4 book ai didi

c# - 由于延迟,避免在 SQL Server 中重复

转载 作者:行者123 更新时间:2023-11-30 20:45:36 25 4
gpt4 key购买 nike

我在 C# 中有一个类似 POS 的系统,很长一段时间它都没有出现任何问题(它只是一个 POS)。但现在有 4 个 POS 使用该系统,并连接到同一个数据库,一个 POS 的所有销售都进入同一个审计(表),其他所有销售都去那里。所以在这个系统中是这样的程序

  1. 获取最后一个票号的函数(使用简单的SELECT)
  2. 在该数字上加 1(下一个票号)。
  3. 生成一个 ID 代码,将此票号(带有终端、日期和员工代码)注入(inject)算法
  4. 将销售记录与所有必要信息(日期、客户、员工、IDCode 等)一起插入数据库(使用简单的 INSERT INTO)

但是有4个POS我发现有些销售有相同的Ticket number,幸运的是Ticket ID代码不一样,因为终端和员工不同,但如何避免这种情况呢?

编辑 1:每个 POS 系统都有双重功能,在一种模式下 POS 销售是集中的,并且这种模式下的每个 POS 都会生成连续的票(就像它们都在一个 POS 中一样),在另一种模式下每个 POS 都有自己的票号,因此我不能使用身份。

最佳答案

只需使用一个序列来生成下一个票号。

CREATE SEQUENCE Tickets
START WITH 1
INCREMENT BY 1;

然后每个POS就做

SELECT NEXT VALUE FOR Tickets;

保证序列永远不会返回相同的数字两次。

关于c# - 由于延迟,避免在 SQL Server 中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com