并发读取会产生不同的结果

时间:2017-07-25 09:19:45

标签: javascript php mysql vb.net mariadb

我想使用VB6或VB.NET设计Point Of Sales应用程序。

此应用程序需要为每个事务具有不同的ID。在交易开始时,收银员将在他/她第一次开始交易时显示交易ID。不同的收银员必须具有不同的交易ID。 从数据库的角度来看,实现这一目标的最佳方法是什么?可以使用mysql中的表/视图/函数来实现吗?我怎样才能实现这种机制?

如果我使用Select MAX(ID) + 1 GROUP BY cashier进行后续交易,那么2个并发请求将具有相同的交易ID。如果我使用INSERT ..ON DUPLICATE KEY update..,那么我无法在屏幕上显示交易ID。

我见过类似的应用程序,但我无法复制生成唯一ID的过程。这个应用程序(基于JS)以某种方式设法在每个事务开始时生成唯一ID而不使用Select (MAX) id GROUP BY cashier。它只使用1个序列号作为参考。

我使用的数据库是mariadb,表格类型为innodb,具有可重复的读取机制。

谢谢

0 个答案:

没有答案