Кассандра - Альтер Стол
Изменение таблицы
Вы можете изменить таблицу с помощью команды ALTER TABLE. Ниже приведен синтаксис для создания таблицы.
Синтаксис
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
Используя команду ALTER, вы можете выполнить следующие операции -
Добавить столбец
Отбросить столбец
Добавление столбца
Используя команду ALTER, вы можете добавить столбец в таблицу. При добавлении столбцов вы должны позаботиться о том, чтобы имя столбца не конфликтовало с существующими именами столбцов и чтобы таблица не была определена с опцией компактного хранения. Ниже приведен синтаксис для добавления столбца в таблицу.
ALTER TABLE table name
ADD new column datatype;
Example
Ниже приведен пример добавления столбца в существующую таблицу. Здесь мы добавляем столбец с именемemp_email типа текстовых данных в таблицу с именем emp.
cqlsh:tutorialspoint> ALTER TABLE emp
... ADD emp_email text;
Verification
Используйте оператор SELECT, чтобы проверить, добавлен ли столбец. Здесь вы можете увидеть недавно добавленный столбец emp_email.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
--------+----------+-----------+----------+-----------+---------
Удаление столбца
Используя команду ALTER, вы можете удалить столбец из таблицы. Перед удалением столбца из таблицы убедитесь, что для таблицы не задана опция компактного хранения. Ниже приведен синтаксис для удаления столбца из таблицы с помощью команды ALTER.
ALTER table name
DROP column name;
Example
Ниже приведен пример удаления столбца из таблицы. Здесь мы удаляем столбец с именемemp_email.
cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;
Verification
Убедитесь, что столбец удален, используя select заявление, как показано ниже.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)
поскольку emp_email столбец удален, вы больше не можете его найти.
Изменение таблицы с помощью Java API
Вы можете создать таблицу, используя метод execute () класса Session. Следуйте инструкциям ниже, чтобы изменить таблицу с помощью Java API.
Шаг 1. Создайте кластерный объект.
Прежде всего, создайте экземпляр Cluster.builder класс com.datastax.driver.core пакет, как показано ниже.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Добавьте точку контакта (IP-адрес узла), используя addContactPoint() метод Cluster.Builderобъект. Этот метод возвращаетCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Используя новый объект построителя, создайте объект кластера. Для этого у вас есть метод под названиемbuild() в Cluster.Builderкласс. В следующем коде показано, как создать объект кластера.
//Building a cluster
Cluster cluster = builder.build();
Вы можете построить объект кластера, используя одну строку кода, как показано ниже.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Шаг 2. Создайте объект сеанса
Создайте экземпляр объекта Session, используя метод connect () класса Cluster, как показано ниже.
Session session = cluster.connect( );
Этот метод создает новый сеанс и инициализирует его. Если у вас уже есть пространство ключей, вы можете установить его в существующее, передав имя KeySpace в строковом формате этому методу, как показано ниже.
Session session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );
Здесь мы используем KeySpace с именем tp. Поэтому создайте объект сеанса, как показано ниже.
Шаг 3: Выполнить запрос
Вы можете выполнять запросы CQL, используя метод execute () класса Session. Передайте запрос в строковом формате или в виде объекта класса Statement методу execute (). Все, что вы передадите этому методу в строковом формате, будет выполнено наcqlsh.
В следующем примере мы добавляем столбец в таблицу с именем emp. Для этого вы должны сохранить запрос в строковой переменной и передать его методу execute (), как показано ниже.
//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);
Ниже приведена полная программа для добавления столбца в существующую таблицу.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Add_column {
public static void main(String args[]){
//Query
String query = "ALTER TABLE emp ADD emp_email text";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//Executing the query
session.execute(query);
System.out.println("Column added");
}
}
Сохраните указанную выше программу с именем класса, за которым следует .java, перейдите в место, где она сохранена. Скомпилируйте и выполните программу, как показано ниже.
$javac Add_Column.java $java Add_Column
В нормальных условиях он должен выдавать следующий результат -
Column added
Удаление столбца
Ниже приведена полная программа для удаления столбца из существующей таблицы.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Delete_Column {
public static void main(String args[]){
//Query
String query = "ALTER TABLE emp DROP emp_email;";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//executing the query
session.execute(query);
System.out.println("Column deleted");
}
}
Сохраните указанную выше программу с именем класса, за которым следует .java, перейдите в место, где она сохранена. Скомпилируйте и выполните программу, как показано ниже.
$javac Delete_Column.java $java Delete_Column
В нормальных условиях он должен выдавать следующий результат -
Column deleted