mysql中uniqueidentifier的替代品是什么?

jim*_*mmy 15 mysql sql-server uniqueidentifier

我有一个SQL Server的查询,我想在Mysql中运行.但我找不到任何替代uniqueidentifier关键字从SQL Server脚本到MYSQL脚本.

这是查询

 CREATE TABLE foo(
  myid uniqueidentifier NOT NULL,
  barid uniqueidentifier NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

对于上面相同的SQL Server脚本,Mysql中的查询是什么?

Joe*_*ris 18

接受的答案虽然不完全错误,但有点不完整.肯定有更多节省空间的方法来存储GUID/UUID.请看一下这个问题:"存储MySQL GUID/UUID"

这是我将UUID()生成的MySQL GUID/UUID转换为二进制(16)的最佳方法:

UNHEX(REPLACE(UUID(),'-',''))
Run Code Online (Sandbox Code Playgroud)

然后将其存储在BINARY(16)

如果GUID/UUID的存储空间是主要关注点,则此方法将显着节省成本.


N.B*_*.B. 15

CREATE TABLE FOO (
myid CHAR(38) NOT NULL,
barid CHAR(38) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

据MS网站称,GUID的长度为38个字符.


小智 5

根据 MySQL 网站,您应该将其与 VARCHAR(64) 匹配

UNIQUEIDENTIFIER,   VARCHAR(64)
Run Code Online (Sandbox Code Playgroud)

http://dev.mysql.com/doc/workbench/en/wb-migration-database-mssql-typemapping.html