这有点难以解释。
我有一个系统(LAMP项目),有一个功能,如果用户保存一个产品,系统会自动为它生成一个数字。
例如,系统中当前最大的数字是 abc-112。因此,如果我创建一个新产品并保存它,我会自动将数字 abc-113 保存为这个新产品的属性。(一个函数会找到最大的数字并在其上加 1 并返回)
现在我的问题是,如果系统中有超过 1 个用户同时点击保存产品,所有新产品都会得到 abc-113 而不是 abc-113 / abc-114 / abc-115 等等。
有人知道如何解决这个问题吗?许多 THX !
编辑:
生成代码实际上比我上面写的要复杂得多,我认为解释不是很重要,但似乎很多人认为我可以使用 DB-autoincrement index 来代替这个,但抱歉我不能,计算逻辑不能更改,例如新产品,该值可以是 abc-112 或 abc-1502 或 abc-2293,它基于产品的类别和类别的父类别和产品类型,不只是 1,2,3,4 ,5,6,7...
但无论如何,对于“DB”的建议
编辑#2:
似乎没人能理解,好吧,我已经通过锁解决了,对不起我的英语不好。都一样!