如何在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
答案 0 :(得分:0)
你可以看到这个答案:Cassandra column key auto increment,它解释了为什么Cassandra中没有auto_increment,以及为什么没有last_insert_id()。您需要生成有意义的密钥或使用UUID
答案 1 :(得分:0)
正如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
获取为特定日期创建的最新密钥。根据生成的密钥频率,您可能必须更改分区键以更均匀地分配数据。
我发现以这种方式跟踪生成的密钥通常是一个好主意,因为您永远不知道您最终需要覆盖的应用程序逻辑,这可以帮助您避免应用程序繁重的数据迁移。