카산드라-테이블 변경
테이블 변경
다음 명령을 사용하여 테이블을 변경할 수 있습니다. 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를 사용하여 테이블 변경
Session 클래스의 execute () 메소드를 사용하여 테이블을 생성 할 수 있습니다. 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 단계 : 세션 개체 생성
아래와 같이 Cluster 클래스의 connect () 메서드를 사용하여 Session 객체의 인스턴스를 생성합니다.
Session session = cluster.connect( );
이 메서드는 새 세션을 만들고 초기화합니다. 이미 키 스페이스가있는 경우 아래와 같이 문자열 형식의 키 스페이스 이름을이 메서드에 전달하여 기존 키 스페이스로 설정할 수 있습니다.
Session session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );
여기에서는 tp라는 KeySpace를 사용합니다. 따라서 아래와 같이 세션 개체를 생성합니다.
3 단계 : 쿼리 실행
Session 클래스의 execute () 메서드를 사용하여 CQL 쿼리를 실행할 수 있습니다. 쿼리를 문자열 형식으로 또는 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