在PHP&中生成连续的发票号码。 MySQL(并发)

时间:2016-09-19 02:21:26

标签: php mysql concurrency duplicates

该系统被许多商店使用,每个商店都有自己的发票号,例如

SHOPA-0001
SHOPA-0002
SHOPA-0003

SHOPB-0001
SHOPB-0002
...

现在我做的是,选择MySQL表格中的最后一个ID,并选择发票号码+1。我的问题是,1店有多个运行该系统的PC,如果2个收银员同时提交表格,则会有重复。

对此问题的任何建议?

1 个答案:

答案 0 :(得分:1)

使用安全的意向锁定,就像我的回答Here一样。但是我有Chassis和Brakes这样的部分,你的是SHOPA和SHOPB等。你可以决定是否希望客户端处理左边的零填充,或者你是否希望mysql以列宽int处理它(4 )或LPAD()使用CONCAT

正如那个答案所提到的那样,这是一种安全的并发方式,而且商店之间是分开的。如果正确完成,锁定速度非常快。

相关问题