Кассандра перешивая стол - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть таблица в Кассандре, где говорится о сотруднике (идентификатор, адрес электронной почты, роль, имя, пароль), и в качестве основного ключа используется только идентификатор.

Я хочу ...

1.Добавьте еще один столбец (manager_id) со значением по умолчанию

Я знаю, что могу добавить столбец в таблицу, но я не могу предоставить значение по умолчанию для этого столбца через CQL.Я также не могу обновить значение для manager_id позже, так как мне нужно знать идентификатор (ключ раздела и значения являются случайно сгенерированными уникальными значениями, которые я не знаю), чтобы обновить строку.Есть ли способ, которым я могу достичь этого?

2.Переименуйте эту таблицу в all_employee.

Я также знаю, что нельзя переименовывать таблицу в Кассандре.Поэтому я пытаюсь скопировать данные таблицы (employee) в csv и скопировать из csv в новую таблицу (all_employee) и удаляю старую таблицу (employee).Я делаю это с помощью автоматизированного сценария с запросами cql, и сценарий работает нормально, но завершится неудачей, если он будет выполнен снова (что я не могу ограничить), так как сотрудник таблицы не будет там после удаления.По сути, я ищу предложение «Если существует» в запросе COPY, который не поддерживается в cql.Есть ли другой способ добиться результата?

Обратите внимание, что объем данных в таблице очень мал, поэтому производительность не является проблемой.

1 Ответ

0 голосов
/ 26 апреля 2018

Для # 1

Я не думаю, что Кассандра поддерживает столбец по умолчанию.Вы должны сделать это от вашего одобрения.Пишите какое-либо значение по умолчанию каждый раз при вставке строки.

Для # 2

вы можете проверить, существует ли таблица, прежде чем пытаться скопировать из нее.

SELECT your_table_name FROM system_schema.tables WHERE keyspace_name='your_keyspace_name';
...