复制mysql主键为MD5等效

时间:2011-03-19 01:25:15

标签: php mysql

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

ID是一个自动递增的int。 Public_ID是ID中INT的MD5哈希值。

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

是否有更有效的方法来生成Public_ID而无需计数或插入后更新?

谢谢, 彼得

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

Generall插入行完成后插入行的ID不可用,这意味着您无法执行此操作:

插入表(pk,hash)值(null,last_insert_id());

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

所以,看起来你已经陷入了插入/获取/更新周期。

答案 2 :(得分:1)

如果您要使用MD5来散列ID,您也可以生成GUID