gpt4 book ai didi

mysql - 在插入之前触发生成唯一的 md5 哈希

转载 作者:行者123 更新时间:2023-11-29 00:52:27 25 4
gpt4 key购买 nike

我正在尝试创建一个触发器,它将一个唯一的随机字符串关联到表中插入的每条记录。

到目前为止,我在插入之前创建了一个触发器,它将生成散列并将其添加到表中。但是,我想知道我应该如何确保这个新哈希对我的表是唯一的

到目前为止,我有下面的触发器,但正如您所看到的,缺少唯一性部分...

BEGIN
DECLARE newhash VARCHAR(255);
SELECT MD5(CONCAT(NOW(),RAND())) INTO newhash;
SET NEW.`hash` = newhash;
END

最佳答案

该列在表定义中应该是唯一的,仅此而已。

无论如何,您确定要 md5(现在 || rand)吗?通过 now 和 rand 的合理实现,你不太可能有重复项,但是如果 now() 没有很多粒度或者随机数不是一个好的随机数,你可能会在某些情况下遇到麻烦场景。

对于这类事情使用现成的方案可能是一个更好的主意,例如使用 UUID(MySQL 似乎支持:http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid)。

关于mysql - 在插入之前触发生成唯一的 md5 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7827150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com