2012-04-05 1988 views
0

在sql-server中有自动增加guid字段的函数。如何在mysql数据库中自动编号(自动增加)guid字段

CREATEGUID() 

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

+0

http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html – silly 2012-04-05 13:55:36

+0

只是澄清 - 在MSSQL服务器,获得一个新的GUID,你会打电话给NEWID( )。要获得比先前创建的GUID大的GUID,可以使用NEWSEQUENTIALID()。 AFAIK,CREATEGUID()不存在。 – 2012-04-05 14:16:49

+0

@silly谢谢,这帮助了我。 – 2012-04-05 14:29:21

回答

0

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

此功能也可能会有用 - UUID_SHORT()

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

0

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

但MySQL只支持AUTO_INCREMENT数字数据类型。

+0

是guid支持自动增量? – 2012-04-05 14:34:21

+0

@ShadiSaeed在MySQL中没有像UNIQUEIDENTIFIER这样的数据类型。你可以使用char/varchar或binary来存放guid。这些数据类型不允许使用auto_increment。 – 2012-04-05 14:36:21

+0

:)非常感谢:) – 2012-04-05 14:53:23