【问题标题】:How to generate UUID in python withing given range如何在给定范围内的python中生成UUID
【发布时间】:2019-11-13 14:14:49
【问题描述】:

我需要为 MYSQL intBigInt 生成 UUID,它们需要在 给定范围 内,并且我需要 10 位数字 我已为其编写代码的整数 UUID

def getUniqueID():
    unique_id = uuid4().int & (0 << 32) - 1
    return unique_id

例如,SQL int 不应超过 2147483647 的限制。(unique_id

def getUniqueID(min,max):

    unique_id = uuid4().int & (0 << 32) - 1
    return unique_id

此处发现 SQL int 限制,

https://dev.mysql.com/doc/refman/8.0/en/integer-types.html

【问题讨论】:

  • 那不是 UUID。只是一定范围内的随机数。
  • UUID 通用唯一标识符。如果您指定新规则,则它不再是 deceze 所说的 UUID。请提出不同的问题。
  • 是的,但我正在寻找一种以某种方式生成 UUID 的选项。在我的 INT/BIGINT 模式数据类型中,如果超过其限制,MySql 将不接受。
  • 你应该只为你的 SQL 表使用一个自动递增的数字。
  • 无论如何你需要多久阅读一次,只需制作一个简单的 VIEW 即可在需要时即时阅读。@Error-SyntacticalRemorse

标签: python mysql uuid


【解决方案1】:

首先你可以安装 shortuuid

python -m pip install shortuuid

那么你可以这样使用它:

import shortuuid
print(shortuuid.ShortUUID().random(length=10))

项目在github:https://github.com/skorokithakis/shortuuid

【讨论】:

  • 不是一个糟糕的解决方案,但它切换到使用完整的 ASCII 而不是十六进制的 UUID。
猜你喜欢
  • 2011-08-17
  • 2017-06-27
  • 2023-01-28
  • 2020-02-25
  • 1970-01-01
  • 2014-02-25
  • 2021-07-10
  • 2017-07-13
  • 1970-01-01
相关资源
最近更新 更多