SELECT UUID();生成的id为纯数字形式的写法
时间: 2024-03-16 14:47:27 浏览: 124
使用UUID()函数生成的ID是由36个字符组成的标准UUID格式,其中包含了字母和数字。如果需要生成纯数字形式的ID,可以将生成的UUID字符串中的字母部分去掉,只保留数字部分。
在MySQL中,可以使用REPLACE函数将字符串中的某一部分替换为另一部分,例如将UUID字符串中的字母部分替换为空字符串,即可得到纯数字形式的ID,示例代码如下:
```sql
SELECT REPLACE(REPLACE(REPLACE(UUID(), '-', ''), 'a', ''), 'b', '');
```
这将生成一个纯数字的字符串作为ID,其中UUID()函数生成的36个字符的字符串中的连字符 '-' 被替换为空字符串,字母 'a' 和 'b' 也被替换为空字符串。
相关问题
mysql uuid生成19位纯数字
可以使用MySQL的内置函数来生成19位纯数字的uuid。请参考以下示例代码:
SELECT CAST(CONV(SUBSTRING(REPLACE(UUID(), '-', ''), 1, 16), 16, 10) AS UNSIGNED) % 1000000000000000000
这会生成一个19位的纯数字uuid。请注意,由于MySQL的UUID函数生成的字符串包含字母和数字,因此我们需要先将其处理为纯数字,并使用MOD运算符来确保结果在19位以内。
mysql中使用触发器完成纯数字的uuid生成
在MySQL中,可以使用触发器来生成纯数字的UUID。以下是实现步骤:
1. 创建一个表用于存储生成的纯数字UUID,表结构如下:
```
CREATE TABLE uuid (
id INT AUTO_INCREMENT,
uuid BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);
```
2. 创建一个触发器,在插入数据前生成纯数字UUID并将其插入到表中。触发器代码如下:
```
CREATE TRIGGER uuid_trigger
BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
DECLARE uuid BIGINT UNSIGNED;
SET uuid = FLOOR(RAND() * 9999999999999999);
WHILE EXISTS(SELECT * FROM uuid WHERE uuid = uuid) DO
SET uuid = FLOOR(RAND() * 9999999999999999);
END WHILE;
INSERT INTO uuid (uuid) VALUES (uuid);
SET NEW.id = LAST_INSERT_ID();
SET NEW.uuid = uuid;
END;
```
其中,`your_table`是需要生成纯数字UUID的表名。
3. 插入数据时,不需要指定`uuid`字段的值,触发器会自动生成并插入到表中。
```
INSERT INTO your_table (some_field) VALUES ('some_value');
```
这样,每次插入数据时,触发器会自动生成一个唯一的纯数字UUID并插入到表中。
阅读全文