mysql传uuid
时间: 2025-03-02 19:11:13 浏览: 47
### 在 MySQL 中插入和查询 UUID
#### 插入 UUID 数据
在 MySQL 中,`UUID()` 函数用于生成通用唯一标识符(UUID)。此函数每次调用都会返回一个新的、几乎独一无二的字符串。为了向表中插入带有 UUID 的新记录,可以直接使用 `INSERT INTO ... SELECT UUID(), ... FROM ...` 语句。
例如,假设有一个名为 `users` 的表,其中包含两列:`id` 和 `username`。如果想要插入一条具有自动生成的 UUID 的记录,则可以执行如下 SQL:
```sql
INSERT INTO users (id, username)
SELECT UUID(), 'example_user';
```
对于批量插入不同 UUID 的情况,可以通过子查询来实现这一点。比如存在另一个源表 `source_table` 并希望将其所有行连同各自独立的 UUID 一起复制到目标表 `target_table` 中,那么应该这样做[^3]:
```sql
INSERT INTO target_table (uuid_column, other_columns...)
SELECT UUID(), source_columns...
FROM source_table;
```
需要注意的是,在某些情况下可能需要去除 UUID 字符串中的破折号以满足特定需求。此时可以在插入之前先应用 `REPLACE(UUID(), '-', '')` 来移除这些字符[^4]。
#### 查询含有 UUID 的数据
当涉及到检索存储了 UUID 的字段时,只需像平常那样编写标准的选择查询即可。例如要获取 `users` 表里所有的 ID 及用户名信息,就可以这样写:
```sql
SELECT id, username
FROM users;
```
而如果你只想找到那些其 `id` 是由 UUID 构成的记录——尽管这通常没有必要因为默认情况下它们就是如此——你可以利用正则表达式匹配功能来进行筛选:
```sql
SELECT *
FROM users
WHERE id REGEXP '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$';
```
上述命令将会选出符合 RFC 4122 定义的标准格式 UUID 形式的任何条目。
阅读全文
相关推荐


















