Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 - 添加 UUID 版本 7 生成函数。

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

2024年12月11日,Masahiko Sawada提交了UUID版本7生成函数的补丁,该函数结合Unix时间戳和随机位,确保UUID的唯一性和可排序性。同时新增的uuid_extract_timestamp()函数可提取UUID生成时间,提升了UUID的可用性。

🎯

关键要点

  • 2024年12月11日,Masahiko Sawada提交了UUID版本7生成函数的补丁。
  • uuidv7() SQL函数结合Unix时间戳和随机位,确保UUID的唯一性和可排序性。
  • UUID版本7的实现中,12位亚毫秒时间戳存储在时间戳后,确保在同一毫秒内的单调性。
  • uuid_extract_timestamp()函数被扩展以支持UUID版本7,提升了UUID的可用性。
  • 新增的uuidv4()别名用于保持与现有gen_random_uuid() SQL函数的一致性。
  • UUID版本7允许生成可排序的UUID,解决了传统UUID不可排序的问题。
  • uuid_extract_timestamp()函数可以提取UUID生成的时间,具有毫秒精度。
  • 可以生成带有时间偏移的UUID,提供更灵活的时间管理功能。

延伸问答

UUID版本7的生成函数是什么时候提交的?

UUID版本7的生成函数补丁于2024年12月11日提交。

UUID版本7如何确保唯一性和可排序性?

UUID版本7结合Unix时间戳和随机位,确保UUID的唯一性和可排序性。

uuid_extract_timestamp()函数的作用是什么?

uuid_extract_timestamp()函数可以提取UUID生成的时间,具有毫秒精度。

UUID版本7如何解决传统UUID不可排序的问题?

UUID版本7允许生成可排序的UUID,解决了传统UUID不可排序的问题。

如何生成带有时间偏移的UUID?

可以通过uuidv7()函数并传入时间偏移参数来生成带有时间偏移的UUID。

UUID版本7的时间戳存储方式是什么?

UUID版本7的12位亚毫秒时间戳存储在时间戳后,确保在同一毫秒内的单调性。

➡️

继续阅读