我想在插入该行时创建AUTO-INCREMENT字段的唯一哈希。类似的东西:
INSERT INTO `table` (`hash`,`salt`) VALUES (MD5(CONCAT(`id`,`salt`)),'1234789687');
是否可以使用我插入的行的AUTO-INCREMENTED id?或者我是否必须等到它被插入以通过PHP或其他东西获取它?
答案 0 :(得分:1)
我不确定,但真的怀疑这是可能的。我明白为什么你会想... ...插入行并不是那么优雅,然后立即更新它。
我会考虑你是否真的需要在数据库中存储哈希,或者如果你可以在选择期间计算它:
选择MD5(CONCAT(id
,salt
))FROM表WHERE ...
答案 1 :(得分:1)
简短的回答是不 - 这是不可能的。如果您的数据库具有较低的事务量,那么使用与select max()
类似的内容(易受干扰)并发可能不是问题:Can you access the auto increment value in MySQL within one statement?
我会跟随php中的插入更新
update `table`
set `hash` = MD5(CONCAT(`id`,`salt`))
where `id` = LAST_INSERT_ID();