Как я могу получить последнее значение первичного ключа в Cassandra-php? Я имею в виду, у нас есть функция для получения идентификатора, сгенерированного в последнем запросе mysql_insert_id
в PHP за MYSQL. Кроме того, есть что-нибудь для 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
Как упоминал Алар, auto-increment / 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
Чтобы получить самый последний ключ, созданный для этого конкретного дня. В зависимости от частоты генерируемых ключей вам может потребоваться изменить ключ разделения, чтобы распределить данные более равномерно.
Я считаю, что обычно хорошей идеей является отслеживание сгенерированных ключей, так или иначе, потому что вы никогда не знаете, какую логику приложения вам в конечном итоге нужно будет охватить, и это избавит вас от тяжелой миграции данных приложения.
Вы можете увидеть этот ответ: Автоматическое увеличение ключа столбца Кассандры которые объясняют, почему в Cassandra нет auto_increment, и, следовательно, почему нет last_insert_id (). Вам нужно сгенерировать значимые ключи или использовать UUID