1

我有一个需要分配给用户的 api-key,它们需要每个用户都是唯一的,但可以从 0 [0,1,2,3,4,5...] 开始重复使用,但它们有一个限制,并且它是特定于功能的(除非要求,否则并非所有用户都需要它们)。

现在我一直在将最高数字加 1 作为用户请求键:

[ 0, 1, null, 3, 6, 7, null, 10, 11, 12, null, null...]

但这正在逐渐达到极限,我需要重用它们:[ 2、4、5、8、9...] 我怎样才能在 sqlalchemy 中获得最低的未使用值以始终重用密钥?

4

1 回答 1

1

我不完全确定这一点上的 SQLAlchemy 语法,但从 sql 方面来说,我认为您可能想要执行类似此答案中建议的操作。引:

SELECT MIN(t1.ID + 1) AS nextID
FROM tablename t1 LEFT JOIN tablename t2
ON t1.ID + 1 = t2.ID
WHERE t2.ID IS NULL

如果您在寻找正确的 SQLAlchemy 方法时遇到问题,您始终可以在会话对象上使用with_statementorexecute方法(让您自由定义 SQL 语句)。一般而言,请参阅此页面以获取有关如何构建它的信息。

于 2013-09-17T17:07:01.427 回答