UPDATEではこれが不可能であることを理解しています。
代わりに、PK = 0のすべての行をPK = 1の新しい行に移行します。これを達成する簡単な方法はありますか?
比較的簡単な方法として、cqlshでいつでも簡単なCOPY
TO/FROMを実行できます。
従業員用の「emp」という列ファミリー(テーブル)があるとします。
CREATE TABLE stackoverflow.emp (
id int PRIMARY KEY,
fname text,
lname text,
role text
)
この例では、1つの行があります。
aploetz@cqlsh:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
新しいIDでAngelを再作成する場合は、テーブルの内容をCOPY
。csvファイルにTO
できます。
aploetz@cqlsh:stackoverflow> COPY stackoverflow.emp TO '/home/aploetz/emp.csv';
1 rows exported in 0.036 seconds.
次に、お気に入りのエディターを使用して、emp.csvでAngelのIDを2に変更します。ファイルに複数の行がある場合(更新する必要がない場合)、これはそれらを削除する機会であることに注意してください。
2,Angel,Pay,IT Engineer
ファイルを保存してから、更新された行をCOPY
ファイルに戻しますCassandra FROM
:
aploetz@cqlsh:stackoverflow> COPY stackoverflow.emp FROM '/home/aploetz/emp.csv';
1 rows imported in 0.038 seconds.
これで、Angelの「emp」テーブルに2つの行があります。
aploetz@cqlsh:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
2 | Angel | Pay | IT Engineer
(2 rows)
詳細については、 COPYのDataStaxドキュメント を確認してください。