【问题标题】:DB2 Generate GUID/UUIDDB2 生成 GUID/UUID
【发布时间】:2020-06-12 18:10:16
【问题描述】:

是否可以在 DB2 中生成 GUID/UUID 字符串,其内容需要在 Universe 中绝对唯一?类似于 SQL Server 中的 uniqueidentifier 数据类型。在 DB2 中,我们得到了 GENERATE_UNIQUE 函数,它确保在同一函数的多次执行中唯一性。我想我可以在 DB2 中尝试 Java 例程。在最坏的可能情况下,我可以从我的 Java 应用程序生成 GUID/UUID 并将其发送到 DB2。在 DB2 中是否有任何其他替代方法可以在不使用外部组件/例程的情况下实现相同的功能。请提出建议。

谢谢你..

【问题讨论】:

  • 这是一个常见问题解答。做你的研究。请务必仔细分析您使用 UUID 的动机,尤其是如果您的数据库使用散列分布的表,它们将如何在物理模型中使用。假设:什么都没有。

标签: db2 db2-luw


【解决方案1】:

试试这个...

   SELECT  LEFT(TRANSLATE ( CHAR(BIGINT(RAND() * 10000000000 )), 'abcdef123456789', '1234567890' ),8) CONCAT '-' CONCAT LEFT(TRANSLATE ( CHAR(BIGINT(RAND() * 10000000000 )), 'abcdef123456789', '1234567890' ),4) CONCAT '-' CONCAT LEFT(TRANSLATE ( CHAR(BIGINT(RAND() * 10000000000 )), 'abcdef123456789', '1234567890' ),4) CONCAT '-' CONCAT LEFT(TRANSLATE ( CHAR(BIGINT(RAND() * 10000000000 )), 'abcdef123456789', '1234567890' ),4) CONCAT '-' CONCAT LEFT(TRANSLATE ( CHAR(BIGINT(RAND() * 10000000000000 )), 'abcdef123456789', '1234567890' ),12)  FROM YOURTABLE

【讨论】:

  • 太棒了,你为我节省了很多时间!
【解决方案2】:

如果没有 Db2 中的外部函数,您将无法做到这一点。
Java UDF 是最简单的方法。

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2017-06-25
    • 2013-11-16
    相关资源
    最近更新 更多