MySQL 中的 UUID_SHORT()函数
MySQL 中的此函数用于将“短”通用标识符作为 64 位无符号整数返回。如果满足以下条件,则 UUID_SHORT() 的值保证是唯一的:
- 当前服务器的 server_id 值在 0 到 255 之间,并且在我们的源服务器和副本服务器集中是唯一的。
- 我们不会在 mysqld 重新启动之间为我们的服务器主机设置系统时间。
- 我们应该在 mysqld 重新启动之间平均每秒调用 UUID_SHORT() 少于 1600 万次。
句法 :
UUID_SHORT()
范围 :
这个方法没有任何参数。
回报:
它返回一个通用唯一标识符号。
示例-1:
在 UUID_SHORT函数的帮助下生成一个简短的通用唯一标识符值。
SELECT UUID_SHORT() AS Short_UUID_Value ;
输出 :
SHORT_UUID_VALUE |
---|
99032629508046848 |
示例 2 :
每当我们使用 UUID_SHORT函数时,我们都会得到不同的短通用唯一标识符值。让我们检查一下——
SELECT UUID_SHORT()
AS SHORT_UUID_VALUE1, UUID_SHORT()
AS SHORT_UUID_VALUE2, UUID_SHORT()
AS SHORT_UUID_VALUE3 ;
输出 :
SHORT_UUID_VALUE1 | SHORT_UUID_VALUE2 | SHORT_UUID_VALUE3 |
---|---|---|
99032629508046849 | 99032629508046850 | 99032629508046851 |
示例 3 :
在本例中,我们将使用 UUID_SHORT 作为表中的主键。为了演示创建一个名为 OrderDetails 的表。
CREATE TABLE OrderDetails2(
OrderId BIGINT PRIMARY KEY,
ProductName VARCHAR(100) NOT NULL,
Price DECIMAL(10, 2) NOT NULL,
ExpectedDelivery DATE NOT NULL
);
现在,将数据插入到 OrderDetails 表中。在这里,我们将使用 UUID_SHORT 函数来分配 OrderId 列中的值。
INSERT INTO OrderDetails2(OrderId, ProductName, Price, ExpectedDelivery)
VALUES(UUID_SHORT(), 'Asus Rog', 90000.00, '2020-12-20'),
(UUID_SHORT(), 'Acer Predator', 100000.00, '2020-12-18'),
(UUID_SHORT(), 'Lenovo Legion', 85000.00, '2020-12-19'),
(UUID_SHORT(), 'Hp Omen', 70000.00, '2020-12-18'),
(UUID_SHORT(), 'Dell Inspiron', 65000.00, '2020-12-23'),
(UUID_SHORT(), 'Acer Nitro', 60000.00, '2020-12-22'),
(UUID_SHORT(), 'Asus Tuf', 80000.00, '2020-12-19');
接下来我们将使用以下命令来检查表。
SELECT * from OrderDetails2;
输出 :
ORDERID | PRODUCTNAME | PRICE | EXPECTEDDELIVERY |
---|---|---|---|
99032629508046854 | Asus Rog | 90000.00 | 2020-12-20 |
99032629508046855 | Acer Predator | 100000.00 | 2020-12-18 |
99032629508046856 | Lenovo Legion | 85000.00 | 2020-12-19 |
99032629508046857 | Hp Omen | 70000.00 | 2020-12-18 |
99032629508046858 | Dell Inspiron | 65000.00 | 2020-12-23 |
99032629508046859 | Acer Nitro | 60000.00 | 2020-12-22 |
99032629508046860 | Asus Tuf | 80000.00 | 2020-12-19 |