如何获取 cassandra(php) 中主键的最后一个值?

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

如何获取Cassandra中主键的最后一个值-php?我的意思是,我们有一个函数可以获取上次查询 mysql_insert_id in PHP for MYSQL[=18 中生成的 ID =].同样,Cassandra 有什么用吗?你能帮我解决这个问题吗?假设这是我的样本table,我怎样才能得到主键的最后一个值?

      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 column key auto increment 这解释了为什么 Cassandra 中没有 auto_increment,因此,为什么没有 last_insert_id()。您需要生成有意义的密钥或使用 UUID

正如 Alar 提到的,没有 auto-increment/last_insert_id() 并且链接的文章说明了原因。

也就是说,像这样的问题变成了数据模型问题。

How can I get the last value of primary key in Cassandra(-php)

我建议在 Cassandra 中创建一个单独的 table 来跟踪创建的密钥。就像是: PRIMARY KEY((day),timestamp) and sort timestamp in DESC

这将使您能够: SELECT key FROM key_log WHERE day=today limit 1 获取为该特定日期创建的最新密钥。根据生成键的频率,您可能必须更改分区键以更均匀地分布数据。

我发现像这样跟踪生成的密钥通常是个好主意,因为您永远不知道最终需要覆盖哪些应用程序逻辑,这可以避免应用程序繁重的数据迁移。