我想在插入該行時創建AUTO-INCREMENT字段的唯一散列。喜歡的東西:如何獲取插入行ON插入的ID?
INSERT INTO `table` (`hash`,`salt`) VALUES (MD5(CONCAT(`id`,`salt`)),'1234789687');
是否可以使用該行的自動遞增的ID,而我插入?或者我必須等到插入才能通過PHP或其他東西抓取它?
我想在插入該行時創建AUTO-INCREMENT字段的唯一散列。喜歡的東西:如何獲取插入行ON插入的ID?
INSERT INTO `table` (`hash`,`salt`) VALUES (MD5(CONCAT(`id`,`salt`)),'1234789687');
是否可以使用該行的自動遞增的ID,而我插入?或者我必須等到插入才能通過PHP或其他東西抓取它?
簡短的答案是否定的 - 這是不可能的。如果你的數據庫具有低交易量,那麼併發性可能不是使用類似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();
我不確定,但真的懷疑這是可能的。我明白了爲什麼你會想......插入行並不那麼優雅,然後馬上更新它。
,如果你真的需要哈希存儲在數據庫中,或者如果你可以選擇在計算的話,我會考慮:
SELECT MD5(CONCAT(id
,salt
))FROM表WHERE ...