📜  MySQL 中的 UUID()函数

📅  最后修改于: 2022-05-13 01:54:51.849000             🧑  作者: Mango

MySQL 中的 UUID()函数

MySQL 中的此函数用于返回根据 RFC 4122“通用唯一标识符 (UUID) URN 命名空间”生成的通用唯一标识符 (UUID)。它被设计为一个通用唯一的数字。两个 UUID 值应该是不同的,即使它们是在两个独立的服务器上生成的。在 MySQL 中,UUID 值是一个 128 位的数字,表示为 utf8字符串,十六进制数格式如下。

例子 -

aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

在这里,前三个数字是从时间戳的低、中和高部分生成的。如您所见,在上述格式中,第四位数字代码将保留时间唯一性,第五位代码将提供空间唯一性,并且它是 IEEE 802 节点编号。

句法 :

UUID()

范围 :
这个方法没有任何参数。
回报:
它返回一个通用唯一标识符号。

示例-1:
借助 UUID函数生成通用唯一标识符值。

SELECT UUID() 
AS UUID_Value ;

输出 :

UUID_VALUE
fbe516f6-3e39-11eb-b897-0862660ccbd4

示例 2 :
每当我们使用 UUID函数时,我们都会得到不同的通用唯一标识符值。让我们检查一下。

SELECT UUID() 
AS  
UUID_VALUE1, 
UUID() 
AS UUID_VALUE2, 
UUID() 
AS UUID_VALUE3 ;

输出 :

UUID_VALUE1UUID_VALUE2UUID_VALUE3
e762634c-3e41-11eb-b897-0862660ccbd4e7626367-3e41-11eb-b897-0862660ccbd4e7626368-3e41-11eb-b897-0862660ccbd4

示例 3 :
在本例中,我们将使用 UUID 作为表中的主键。为了演示创建一个名为 OrderDetails 的表。

CREATE TABLE OrderDetails(
   OrderId BINARY(16) PRIMARY KEY,
   ProductName VARCHAR(100) NOT NULL,
   Price DECIMAL(10, 2) NOT NULL,
   ExpectedDelivery DATE NOT NULL
);

现在,将数据插入到 OrderDetails 表中。在这里,我们将使用 UUID 和 UUID_TO_BIN() 函数来分配 OrderId 列中的值。

INSERT INTO OrderDetails(OrderId, ProductName, Price, ExpectedDelivery)
VALUES(UUID_TO_BIN(UUID()), 'Asus Rog', 90000.00, '2020-12-20'),
      (UUID_TO_BIN(UUID()), 'Acer Predator', 100000.00, '2020-12-18'),
      (UUID_TO_BIN(UUID()), 'Lenovo Legion', 85000.00, '2020-12-19'),
      (UUID_TO_BIN(UUID()), 'Hp Omen', 70000.00, '2020-12-18'),
      (UUID_TO_BIN(UUID()), 'Dell Inspiron', 65000.00, '2020-12-23'),
      (UUID_TO_BIN(UUID()), 'Acer Nitro', 60000.00, '2020-12-22'),
      (UUID_TO_BIN(UUID()), 'Asus Tuf', 80000.00, '2020-12-19');

接下来我们将使用以下命令来检查表。

SELECT  * from OrderDetails;

输出 :

ORDERIDPRODUCTNAMEPRICEEXPECTEDDELIVERY
0xE50EF0D93E3E11EBB8970862660CCBD4 Asus Rog90000.002020-12-20
0xE514F3293E3E11EBB8970862660CCBD4Acer Predator100000.002020-12-18
0xE514F6793E3E11EBB8970862660CCBD4Lenovo Legion85000.002020-12-19
0xE514F7C83E3E11EBB8970862660CCBD4 Hp Omen70000.002020-12-18
0xE514F9173E3E11EBB8970862660CCBD4Dell Inspiron65000.002020-12-23
0xE514FA7B3E3E11EBB8970862660CCBD4Acer Nitro60000.002020-12-22
0xE514FC6C3E3E11EBB8970862660CCBD4 Asus Tuf80000.002020-12-19