Подтвердить что ты не робот

Изменить составной первичный ключ в cassandra CQL 3.0

Я в ситуации, когда мне нужно изменить составной первичный ключ следующим образом:

Старый первичный ключ: (id, source, attribute_name, updated_at);

Новый первичный ключ Я хочу: (source, id, attribute_name, updated_at);

Я выпустил следующую команду (mysql like):

ALTER TABLE general_trend_table 
DROP PRIMARY KEY, 
ADD PRIMARY KEY(source, id, attribute_name, updated_at);

Я получил следующую ошибку:

Плохой запрос: строка 1:38 нет жизнеспособной альтернативы на входе "PRIMARY"

любая идея, как обойти эту проблему? более конкретно, я хочу знать, есть ли способ изменить первичный ключ в кассандре?

4b9b3361

Ответ 1

Невозможно изменить первичный ключ, так как он определяет, как ваши данные физически хранятся.

Вы можете создать новую таблицу с новым первичным ключом, скопировать данные из старого и затем отбросить старую таблицу.

Ответ 2

Если есть возможность использовать старый первичный ключ, вы можете создать материализованное представление: http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateMV.html Но это только рекомендуется, если вам нужен старый ключ.