如何在MySQL与IntelliJ数据库服务中快速插入和修改UUID字段?
直接在MySQL工具中操作binary(16)类型UUID字段的方法
问题根源
binary(16)类型存储的是UUID的16字节二进制数据,而我们日常使用的是带连字符的36字符字符串UUID,直接输入字符串会因长度超出限制报错,工具也会自动将输入转为文本类型导致格式异常。
具体解决方法
1. MySQL Workbench操作
- 插入/更新值:使用MySQL内置函数将字符串UUID转换为二进制格式,示例:
-- 插入示例 INSERT INTO your_table (uuid_column) VALUES (UNHEX(REPLACE('550e8400-e29b-41d4-a716-446655440000', '-', ''))); -- 更新示例 UPDATE your_table SET uuid_column = UNHEX(REPLACE('新UUID字符串', '-', '')) WHERE id = 1; - 优化显示:右键目标表 → 选择
Table Inspector→ 切换到Columns标签页,找到UUID列,将Display Type设置为UUID,此后查询时会自动将二进制数据转为字符串UUID展示。
2. IntelliJ IDEA Database工具操作
- 插入/更新值:
- 编辑单元格时,点击单元格旁的
fx图标切换到表达式模式,输入转换函数:UNHEX(REPLACE('你的UUID字符串', '-', '')) - 新版本IntelliJ支持直接输入字符串UUID:在编辑单元格时,先选中目标列,右键选择
Set Renderer→ 选UUID,之后直接输入带连字符的字符串UUID,工具会自动转换为binary(16)格式存入。
- 编辑单元格时,点击单元格旁的
- 优化显示:右键目标表 → 选择
Properties→ 切换到Columns标签页,找到UUID列,将Renderer设置为UUID,即可在表格视图中直接看到字符串格式的UUID。
3. 批量快速操作
如果需要批量修改,直接执行SQL语句效率最高,例如批量更新某一列的UUID:
UPDATE your_table SET uuid_column = UNHEX(REPLACE(CONCAT(UUID()), '-', '')) WHERE condition;
(上述示例用MySQL的UUID()函数自动生成新UUID并转换为二进制格式)
内容的提问来源于stack exchange,提问作者Văn Thuận Nguyễn
相关产品推荐
相关产品推荐

