我想为每一天创建唯一的订单号。所以理想情况下,例如在 PostgreSQL 中,我可以创建一个序列并为这些唯一数字读回它,因为读回既让我得到新数字又是原子的。然后在一天结束时,我会重置序列。
然而,在 sqlite3 中,我只看到整数字段类型的自动增量。所以说我设置了一个带有自动增量字段的表,并插入一条记录以获取新数字(似乎是一种非常低效的方法,但无论如何......)当我去读最大值时,谁来说另一个任务没有进入那里并插入了另一个记录,从而导致我读回一个错过,我的第一个任务太先进了(并且与另一个任务读回的内容重复。)
从概念上讲,我要求:
- 快速锁定等待其他任务
- 增量号
- 检索号码
- 开锁
...我只是不知道如何用 sqlite3 做到这一点。任何人都可以启发我吗?