【问题标题】:how to auto number ( auto increment ) guid field in mysql database如何在mysql数据库中自动编号(自动递增)guid字段
【发布时间】:2012-04-19 06:34:15
【问题描述】:

在 sql-server 中有自动增加 guid 字段的功能。

CREATEGUID()

我怎样才能在 Mysql 中做同样的事情? 我是数据库编程的新手。 我想创建 16 字节自动递增的主键字段。

【问题讨论】:

  • 澄清一下——在 MSSQL Server 中,要获得新的 GUID,您需要调用 NEWID()。要获得比先前创建的 GUID 更大的 GUID,可以使用 NEWSEQUENTIALID()。 AFAIK,CREATEGUID() 不存在。
  • @silly 谢谢,这对我有帮助。
  • @LynnCrumbling ,谢谢,你的回答对我有帮助,但我在link 中读到了 CREATEGUID
  • @ShadiSaeed 啊,好的。该文档适用于 Microsoft Dynamics NAV,而不是 SQL Server(不同产品)

标签: mysql sql-server database guid auto-increment


【解决方案1】:

您可以创建一个 BEFORE INSERT 触发器来检查自动增量 guid 字段的新值,如果为 NULL,则设置 value = UUID()

这个功能也可能有用 - UUID_SHORT()

UUID_SHORT() - 将“短”通用标识符作为 64 位无符号整数返回(而不是 UUID() 函数返回的字符串形式的 128 位标识符)。

【讨论】:

    【解决方案2】:

    MySQL 具有返回 char/varchar 的 UUID() 函数。例如,您可以使用 BINARY(16) 或 CHAR(36) 来保存这样的数据(二进制文件在插入之前需要进行一些数据转换)。

    但 MySQL 仅支持数字数据类型的 AUTO_INCREMENT。

    【讨论】:

    • guid是否支持自增??
    • @ShadiSaeed MySQL 中没有像 UNIQUEIDENTIFIER 这样的数据类型。您可以使用 char/varchar 或二进制文件来保存 guid。这些数据类型不允许使用 auto_increment。
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 2010-09-30
    • 1970-01-01
    • 2012-09-10
    • 2010-10-06
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多