首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将mysql主键复制为MD5等效键

将mysql主键复制为MD5等效键
EN

Stack Overflow用户
提问于 2011-03-19 09:25:15
回答 3查看 387关注 0票数 1

对于我的表中的每条记录,都有一个ID,然后是Public_ID。

ID是一个自动递增的int。Public_ID是ID中的INT的MD5散列。

要生成此Public_ID,我通常会获取与ID的值匹配的插入ID,然后生成Public_ID并更新id与插入ID匹配的记录。

有没有一种更有效的方法来生成Public_ID,而不必计数,或者在插入后更新?

谢谢,彼得

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-19 09:40:02

如果您打算使用MD5对ID进行哈希处理,那么您最好生成一个GUID

票数 1
EN

Stack Overflow用户

发布于 2011-03-19 09:27:24

当然有。对ID以外的任何内容进行散列以获取Public_ID。可以使用当前时间戳、表中的其他列、环境数据或这些数据的任意组合。

票数 2
EN

Stack Overflow用户

发布于 2011-03-19 09:41:33

一般插入行的ID在插入完成后才可用,这意味着您不能执行以下操作:

insert into table (pk,hash)值(null,last_insert_id());

您将只获得在此之前执行的任何插入的ID,而不是当前插入的ID。同样,您不能使用触发器来捕获它并更新表,因为触发器不能更改新行。

因此,看起来您陷入了插入/获取/更新周期。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5359379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档