Я понимаю, что это невозможно с помощью ОБНОВЛЕНИЯ.
Вместо этого я хотел бы перенести все строки с PK = 0 в новые строки, где PK = 1. Есть ли простые способы добиться этого?
Я понимаю, что это невозможно с помощью ОБНОВЛЕНИЯ.
Вместо этого я хотел бы перенести все строки с PK = 0 в новые строки, где PK = 1. Есть ли простые способы добиться этого?
В качестве относительно простого способа вы всегда можете быстро выполнить COPY
TO / FROM в cqlsh.
Допустим, у меня есть семейство столбцов (таблица) под названием «emp» для сотрудников.
CREATE TABLE stackoverflow.emp (
id int PRIMARY KEY,
fname text,
lname text,
role text
)
И для целей этого примера у меня есть одна строка.
aploetz@cqlsh:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
Если я хочу воссоздать Angel с новым идентификатором, я могу COPY
содержимое таблицы TO
файл .csv:
aploetz@cqlsh:stackoverflow> COPY stackoverflow.emp TO '/home/aploetz/emp.csv';
1 rows exported in 0.036 seconds.
Теперь я воспользуюсь своим любимым редактором, чтобы изменить id Ангела на 2 в emp.csv. Обратите внимание: если в вашем файле несколько строк (которые не нужно обновлять), это ваша возможность удалить их:
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.
Теперь у Ангела две строки в таблице emp.
aploetz@cqlsh:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
2 | Angel | Pay | IT Engineer
(2 rows)
Дополнительную информацию см. В документе DataStax по КОПИРОВАНИЮ.