是否有一些等價於PHP mysql_insert_id
來獲取最後插入的UUID()主鍵? (我總是得到0.它適用於auto_inc整數雖然)PHP的mysql_insert_id()爲MySQL的UUID()主鍵?
回答
不,last_insert_id()只檢索最後生成的auto_increment字段。您必須先執行select uuid()
,然後使用該uuid進行插入。
但是,請注意,uuids不能保證是唯一的 - 它們不太可能發生碰撞。如果你確實需要唯一性,那麼使用auto_increment--它們將永遠不會在任何單個表中重用。
我曾經想過,當你分裂到不同的服務器時,auto_increment會失敗,因此使用UUID的? – ina 2012-02-21 15:58:09
@ina是的,如果切換分區,分片(無論它是否與不同的服務器)可能導致auto_increment失敗。但是,當你對一個表進行分區(「分片」)時,你的PK有效地變成了auto_increment值以及你正在分區的任何列。 – 2012-02-21 17:06:15
我仍然試圖理解爲什麼許多系統爲用戶的主ID使用UUID。我原以爲這是因爲他們認爲數據庫會跨越不同的服務器,而UUID中的mac-address有助於確定數據在哪個服務器上。但是,如果一個ID保證是唯一的並且可以擴展,爲什麼要使用UUID。 – ina 2012-02-24 03:25:08
我發現這個很短的,簡單的解決方案:
set @id=UUID();
insert into <table>(<col1>,<col2>) values (@id,'another value');
select @id;
- 1. MySQL UUID主鍵 - 由PHP或MySQL生成?
- 2. MySQL Workbench爲主鍵自動生成UUID
- 3. 實現作爲主鍵的UUID
- 4. mysql_insert_id或類似的東西返回最後的MySQL UUID()
- 5. 作爲MySQL表主鍵處理大型(UUID)的最佳方式
- 6. UUID主鍵和Memcached
- 7. 自定義UUID作爲主鍵
- 8. php和mysql主鍵
- 9. Eloquent模型中的UUID主鍵存儲爲uuid,但返回爲0
- 10. CakePHP ACL與UUID主鍵
- 11. 主鍵UUID觸發器
- 12. MySQL外鍵關係vs mysql_insert_id關聯表
- 13. 行爲mysql_insert_id()的
- 14. MySQL中的主鍵:INT(n)或UUID as varchar(36)
- 15. 使用UUID主鍵的ActiveRecord遷移
- 16. 主鍵,UUID,RecordKey表,哦我的
- 17. 主鍵 - 用於UUID主鍵的VARBINARY或BLOB或VARCHAR
- 18. 我應該在MySQL中使用int或char作爲id的/ uuid(主鍵)嗎?
- 19. PHP MySQL的複製的主鍵
- 20. php mySQL pdo auto_increment行的主鍵
- 21. 如何使用UUID作爲Hibernate實體的主鍵?
- 22. PostgreSQL:生成自定義的MongoDB-ObjectID-like UUID作爲主鍵
- 23. 使用UUID作爲在軌和多晶型關係的主鍵
- 24. 插入UUID在MySQL從PHP
- 25. PHP中的Guid/Uuid使用MySQL
- 26. 當我在MySQL中使用UUID作爲主鍵時,如何影響性能
- 27. MySQL的多主鍵
- 28. php mysql_insert_id();不工作
- 29. 爲IndexedDB鍵生成UUID?
- 30. 爲什麼PHP mysql_insert_id()返回零?
不幸的是,我不覺得有什麼。另外,請停止使用mysql_ *函數,而是使用mysqli_ *函數或PDO對象。 – 2012-02-21 14:33:40
好吧,除了支持傳統的PHP安裝...有沒有PDO的東西呢? – ina 2012-02-21 14:40:20
我們在說什麼「傳統」? [Mysqli](http://us.php.net/manual/en/book.mysqli.php)得到了很好的支持。 – 2012-02-21 17:18:21