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_VALUE1 | UUID_VALUE2 | UUID_VALUE3 |
---|---|---|
e762634c-3e41-11eb-b897-0862660ccbd4 | e7626367-3e41-11eb-b897-0862660ccbd4 | e7626368-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;
输出 :
ORDERID | PRODUCTNAME | PRICE | EXPECTEDDELIVERY |
---|---|---|---|
0xE50EF0D93E3E11EBB8970862660CCBD4 | Asus Rog | 90000.00 | 2020-12-20 |
0xE514F3293E3E11EBB8970862660CCBD4 | Acer Predator | 100000.00 | 2020-12-18 |
0xE514F6793E3E11EBB8970862660CCBD4 | Lenovo Legion | 85000.00 | 2020-12-19 |
0xE514F7C83E3E11EBB8970862660CCBD4 | Hp Omen | 70000.00 | 2020-12-18 |
0xE514F9173E3E11EBB8970862660CCBD4 | Dell Inspiron | 65000.00 | 2020-12-23 |
0xE514FA7B3E3E11EBB8970862660CCBD4 | Acer Nitro | 60000.00 | 2020-12-22 |
0xE514FC6C3E3E11EBB8970862660CCBD4 | Asus Tuf | 80000.00 | 2020-12-19 |