Как получить последнее значение первичного ключа в Кассандре (php)?

Как я могу получить последнее значение первичного ключа в 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

3

Решение

Как упоминал Алар, 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
Чтобы получить самый последний ключ, созданный для этого конкретного дня. В зависимости от частоты генерируемых ключей вам может потребоваться изменить ключ разделения, чтобы распределить данные более равномерно.

Я считаю, что обычно хорошей идеей является отслеживание сгенерированных ключей, так или иначе, потому что вы никогда не знаете, какую логику приложения вам в конечном итоге нужно будет охватить, и это избавит вас от тяжелой миграции данных приложения.

0

Другие решения

Вы можете увидеть этот ответ: Автоматическое увеличение ключа столбца Кассандры которые объясняют, почему в Cassandra нет auto_increment, и, следовательно, почему нет last_insert_id (). Вам нужно сгенерировать значимые ключи или использовать UUID

0

По вопросам рекламы [email protected]