3

CQL を使用して列を削除できませんでした。これが私が得たエラーメッセージです:

Bad Request: line 1:28 no viable alternative at input 'drop'

これが私がやっていることです。カサンドラ 1.2.6 を実行しています。これは、キースペースを作成した方法です。

CREATE KEYSPACE ex1 WITH replication = {
'class': 'SimpleStrategy',
'replication_factor': '1'
};

次に、作成したばかりのキースペースに切り替えました。

use ex1

その後、次の表を作成しました。

create table person ( id varchar, firstName varchar, lastName varchar, primary key (id));

今、次のように1つの列を削除しようとしています:

cqlsh:ex1> alter table person drop lastName;
Bad Request: line 1:19 no viable alternative at input 'drop'

COLUMNFAMILY代わりにキーワードを使用しようTABLEとしても役に立ちません。

私は何を間違っていますか?

4

2 に答える 2

5

drop は Cassandra 1.2.x では機能しません。少なくとも 2.0.0 を使用する必要があります。

2.0 では、列を削除すると、クエリですぐに使用できなくなりますが、データは引き続き存在します。列は後続の圧縮によって削除されるため、最終的にスペースは解放されます。

于 2013-09-17T08:35:59.160 に答える
1

@アレックス

alter table person drop lastname; を試してください。

CQL3 は大文字と小文字を区別しません。

ところで、Cassandra のどのバージョンを使用していますか? CQL3の初期バージョンでは列の削除がサポートされていないことをどこかで見ました

于 2013-09-17T08:32:14.890 に答える