Я понимаю, что это невозможно с помощью UPDATE.
Вместо этого я хотел бы выполнить миграцию всех строк с помощью PK = 0 для новых строк, где PK = 1. Существуют ли какие-либо простые способы достижения этого?
Я понимаю, что это невозможно с помощью UPDATE.
Вместо этого я хотел бы выполнить миграцию всех строк с помощью PK = 0 для новых строк, где PK = 1. Существуют ли какие-либо простые способы достижения этого?
Для относительно простого способа вы всегда можете быстро выполнить COPY
TO/FROM в cqlsh.
Скажем, что у меня есть семейство столбцов (таблица), называемое emp для сотрудников.
CREATE TABLE stackoverflow.emp (
id int PRIMARY KEY,
fname text,
lname text,
role text
)
И для целей этого примера у меня есть одна строка.
[email protected]:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
Если я хочу воссоздать Angel с новым id, я могу COPY
содержимое таблицы TO
. CSV файл:
[email protected]:stackoverflow> COPY stackoverflow.emp TO '/home/aploetz/emp.csv';
1 rows exported in 0.036 seconds.
Теперь я буду использовать свой любимый редактор, чтобы изменить id Angel на 2 в emp.csv. Обратите внимание, что если у вас несколько файлов в файле (которые не нужно обновлять), это ваша возможность удалить их:
2,Angel,Pay,IT Engineer
Я сохраню файл, а затем COPY
обновленную строку обратно в Cassandra FROM
файл:
[email protected]:stackoverflow> COPY stackoverflow.emp FROM '/home/aploetz/emp.csv';
1 rows imported in 0.038 seconds.
Теперь Ангел имеет две строки в таблице "emp".
[email protected]:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
2 | Angel | Pay | IT Engineer
(2 rows)
Для получения дополнительной информации, проверьте DataStax doc на COPY.