在 MySQL 中遇到 UUID 生成相同的情况,通常有以下几种可能原因:
-- 检查当前 MySQL 版本
SELECT VERSION();
-- 建议升级到 MySQL 8.0+,其 UUID() 函数实现更可靠
-- 使用 UUID() 函数 (MySQL 8.0+)
SELECT UUID();
-- 或者使用应用程序生成 UUID (推荐)
-- 例如在 Java 中使用 java.util.UUID.randomUUID()
CREATE TABLE example (
id BINARY(16) PRIMARY KEY,
name VARCHAR(255)
);
-- 插入时转换 UUID 格式
INSERT INTO example (id, name) VALUES (UUID_TO_BIN(UUID()), 'Test');
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
uuid CHAR(36) DEFAULT (UUID()),
name VARCHAR(255)
);
-- 检查服务器 ID 配置 (影响 UUID_SHORT())
SHOW VARIABLES LIKE 'server_id';
-- 确保服务器时间同步
SELECT NOW(), SYSDATE();
-- 检查表中是否有重复 UUID
SELECT uuid_column, COUNT(*)
FROM your_table
GROUP BY uuid_column
HAVING COUNT(*) > 1;
如果问题仍然存在,可能需要检查应用程序代码或考虑使用其他唯一标识符生成策略。