对于表格中的每条记录,都有一个ID,然后是Public_ID。
ID是一个自动递增的int。 Public_ID是ID中INT的MD5哈希值。
要生成此Public_ID,我通常会获得匹配的插入ID是ID的值,然后生成Public_ID并更新ID与插入ID匹配的记录。
是否有更有效的方法来生成Public_ID而无需计数或插入后更新?
谢谢, 彼得
答案 0 :(得分:2)
当然有。散列除ID以外的任何内容以获取Public_ID。您可以使用当前时间戳,表中的其他列,环境数据或这些列的任意组合。
答案 1 :(得分:2)
Generall插入行完成后插入行的ID不可用,这意味着您无法执行此操作:
插入表(pk,hash)值(null,last_insert_id());
您只需获取在此之前执行的任何插入的ID,而不是当前插入的ID。同样,您不能使用触发器来捕获它并更新表,因为触发器无法更改新行。
所以,看起来你已经陷入了插入/获取/更新周期。
答案 2 :(得分:1)
如果您要使用MD5来散列ID,您也可以生成GUID。