私は、次のように複合主キーを変更する必要がある状況にあります。
古い主キー:(id、source、attribute_name、updated_at);
新しい主キー:(source、id、attribute_name、updated_at);
次の(mysqlのような)コマンドを発行しました。
ALTER TABLE general_trend_table
DROP PRIMARY KEY,
ADD PRIMARY KEY(source, id, attribute_name, updated_at);
次のエラーが表示されました。
悪い要求:行1:38入力 'PRIMARY'で実行可能な代替はありません
この問題を回避する方法はありますか?具体的には、cassandraの主キーを変更する方法はありますか?
データが物理的に保存される方法を定義するため、主キーを変更する方法はありません。
新しい主キーを使用して新しいテーブルを作成し、古いテーブルからデータをコピーして、古いテーブルを削除できます。
古い主キーを使用する可能性がある場合、マテリアライズドビューを作成できます。 http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateMV.html しかし古いキーが必要な場合にのみお勧めします。