기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
UDT - Amazon Keyspaces에서 단일 열을 정의하는 데 사용할 수 있는 필드 및 데이터 형식의 그룹입니다. UDTs에 유효한 데이터 형식은 동일한 키스페이스에서 이미 생성한 컬렉션 및 기타 UDTs를 포함하여 지원되는 모든 Cassandra 데이터 형식입니다. 지원되는 Cassandra 데이터 유형에 대한 자세한 내용은 섹션을 참조하세요Cassandra 데이터 유형 지원.
user_defined_type::= udt_name
udt_name::= [ keyspace_name '.' ] identifier
유형에 대한 문
CREATE TYPE
CREATE TYPE
문을 사용하여 새 유형을 생성합니다.
구문
create_type_statement ::= CREATE TYPE [ IF NOT EXISTS ] udt_name '('field_definition ( ',' field_definition)* ')' field_definition::= identifier cql_type
위치:
-
IF NOT EXISTS
CREATE TYPE
는 유형이 이미 있는 경우가 실패하지 않도록 합니다. (선택 사항) -
udt_name
는 형식 형식의 UDT의 정규화된 이름입니다. 예:my_keyspace.my_type
.USE
문으로 현재 키스페이스를 정의하는 경우 키스페이스 이름을 지정할 필요가 없습니다. field_definition
는 이름과 유형으로 구성됩니다.
다음 표에는 허용되는 UDT 이름의 예가 나와 있습니다. 첫 번째 열은 유형을 생성할 때 이름을 입력하는 방법을 보여주며, 두 번째 열은 Amazon Keyspaces가 내부적으로 이름을 포맷하는 방법을 보여줍니다. Amazon Keyspaces는와 같은 작업에 형식이 지정된 이름을 요구합니다GetType
.
입력한 이름 | 형식이 지정된 이름 | Note |
---|---|---|
MY_UDT
|
my_udt |
큰따옴표 없이 Amazon Keyspaces는 모든 대문자를 소문자로 변환합니다. |
"MY_UDT"
|
MY_UDT |
큰따옴표를 사용하면 Amazon Keyspaces는 대문자를 존중하고 형식이 지정된 이름에서 큰따옴표를 제거합니다. |
"1234"
|
1234 |
큰따옴표를 사용하면 이름은 숫자로 시작할 수 있으며 Amazon Keyspaces는 형식이 지정된 이름에서 큰따옴표를 제거합니다. |
"Special_Ch@r@cters<>!!"
|
Special_Ch@r@cters<>!! |
큰따옴표를 사용하면 이름에 특수 문자가 포함될 수 있으며 Amazon Keyspaces는 형식이 지정된 이름에서 큰따옴표를 제거합니다. |
"nested""""""quotes"
|
nested"""quotes |
Amazon Keyspaces는 형식이 지정된 이름에서 외부 큰따옴표와 이스케이프 큰따옴표를 제거합니다. |
예제
CREATE TYPE my_keyspace.phone (
country_code int,
number text
);
중첩된 UDTs 동결된 경우 UDT를 중첩할 수 있습니다. 유형의 기본값 및 할당량에 대한 자세한 내용은 섹션을 참조하세요Amazon Keyspaces UDT 할당량 및 기본값.
CREATE TYPE my_keyspace.user (
first_name text,
last_name text,
phones FROZEN<phone>
);
UDTsAmazon Keyspaces의 사용자 정의 유형(UDTs).
DROP TYPE
DROP TYPE
문을 사용하여 UDT를 삭제합니다. 다른 유형 또는 테이블에서 사용하지 않는 유형만 삭제할 수 있습니다.
구문
drop_type_statement ::= DROP TYPE [ IF EXISTS ] udt_name
위치:
-
IF EXISTS
는 유형이 없는 경우가 실패하지DROP TYPE
않도록 합니다. (선택 사항) -
udt_name
는 형식 형식의 UDT의 정규화된 이름입니다. 예:my_keyspace.my_type
.USE
문으로 현재 키스페이스를 정의하는 경우 키스페이스 이름을 지정할 필요가 없습니다.
예
DROP TYPE udt_name;