簡體   English   中英

如何在cassandra(php)中獲取主鍵的最后一個值?

[英]How do I get the last value of primary key in cassandra(php)?

如何在Cassandra-php中獲取主鍵的最后一個值? 我的意思是,我們有一個函數來獲取在PHP中用於MYSQL的最后一個查詢mysql_insert_id中生成的ID。 同樣, Cassandra還有什么? 你能幫我解決這個問題嗎? 假設這是我的樣本表,我如何獲得主鍵的最后一個值?

      userId                    | BookId (primary key) |  Genrecode
      --------------------------------------------------------------
      22                        | 9a9fa429c3494137     |  ART4
      56                        | 9a9fa429b3496137     |  45RT
      89                        | 9a9ga429a3496132     |  ER68
      20                        | 249ga429a9096542     |  QW3Y
      29                        | 249kg429a2393652     |  QWE5
      12                        | i55oa429a9093462     |  9ER4
      08                        | e4235k594ik9654r     |  WRUO

您可以看到這個答案: Cassandra列鍵自動增量 ,它解釋了為什么Cassandra中沒有auto_increment,因此沒有last_insert_id()。 您需要生成有意義的密鑰或使用UUID

正如Alar所提到的,沒有自動增量/ last_insert_id(),鏈接的文章就是為什么。

話雖這么說,像這樣的問題變成了數據模型問題。

如何在Cassandra(-php)中獲取主鍵的最后一個值

我建議在Cassandra中創建一個單獨的表來跟蹤創建的密鑰。 類似於: PRIMARY KEY((day),timestamp) and sort timestamp in DESC

這將允許您: SELECT key FROM key_log WHERE day=today limit 1獲取為該特定日期創建的最新密鑰。 根據生成的密鑰頻率,您可能必須更改分區鍵以更均勻地分配數據。

我發現以這種方式跟蹤生成的密鑰通常是一個好主意,因為你永遠不知道最終需要覆蓋哪種應用程序邏輯,這樣就可以避免應用程序繁重的數據遷移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM