有没有办法在 MySQL 上生成 ULID?

Sil*_*Sil 7 mysql

我想使用 SQL 脚本将一些行插入表中,但表键是 Ulid。有没有办法在MySQL中生成Ulids?据我所知,它不是内置的,谷歌也没有提出任何社区提供的解决方案,所以我想知道这是否可能。

syl*_*bre 9

您可以在 MySQL 中使用以下命令获取 ULID 的二进制形式:

CONCAT(UNHEX(CONV(ROUND(UNIX_TIMESTAMP(CURTIME(4))*1000), 10, 16)), RANDOM_BYTES(10))
Run Code Online (Sandbox Code Playgroud)

您可以使用https://gist.github.com/kenji4569/47ce8bbd6bef7b85ba1f97e018f34cf3中定义的这些函数获得规范的字符串表示形式