изменить составной первичный ключ в cassandra CQL 3.0
Я нахожусь в ситуации, когда мне нужно изменить составной первичный ключ следующим образом:
старый первичный ключ: (id, source, attribute_name, updated_at);
новый первичный ключ я хочу: (источник, 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'
любые идеи, как обойти эту проблему? более конкретно, я хочу знать, есть ли способ изменить первичный ключ в cassandra?
2 ответов
нет способа изменить первичный ключ, поскольку он определяет, как ваши данные физически хранятся.
вы можете создать новую таблицу с новым первичным ключом, скопировать данные из старого, а затем удалить старую таблицу.
Если есть возможность использовать старый первичный ключ, вы можете создать materialzied view:http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateMV.html Но это только рекомендуется, если вам понадобится старый ключ.