我们正面临着一个奇怪的mysql数据问题。我们有一个seqgenerator表,它保存id的当前seq。每次下订单时,我的应用程序都会查询seqgenerator表并更新一个数字并将其保存回seqgenerator。
我们用来获取的查询是"从order_seq中选择order_id,其中appid =?更新" 查询更新"更新order_seq set order_id =? appid =?"
这个工作正常,直到上周,上周选择查询返回id已经在前一天使用过了,id被重置并从那里开始递增,因为我们已经覆盖了1天的订单。
答案 0 :(得分:1)
你的设计非常糟糕。
首先,Id应始终是唯一的,这样可以防止您的数据被覆盖。
此外,SQL还有一个自动增量字段,因此您不必每次都更新一个ID
自动增量允许自动生成唯一编号 将新记录插入表格时。
这通常是我们想要创建的主键字段 每次插入新记录时自动