CREATE TYPE
Creates a custom data type in the keyspace that contains one or more fields of related information.
text
field is returned
with two quotes in queries and COPY
commands. For example, if you store
the string Single' quote
in a UDT text
field, the string
is returned as Single'' quote
.Synopsis
CREATE TYPE [ IF NOT EXISTS ] [keyspace_name.]type_name (field_name cql_datatype [ , field_name cql_datatype ... ]) ;
Syntax conventions | Description |
---|---|
UPPERCASE | Literal keyword. |
Lowercase | Not literal. |
Italics |
Variable value. Replace with a user-defined value. |
[] |
Optional. Square brackets ( [] ) surround
optional command arguments. Do not type the square brackets. |
( ) |
Group. Parentheses ( ( ) ) identify a group to
choose from. Do not type the parentheses. |
| |
Or. A vertical bar ( | ) separates alternative
elements. Type any one of the elements. Do not type the vertical
bar. |
... |
Repeatable. An ellipsis ( ... ) indicates that
you can repeat the syntax element as often as required. |
'Literal string' |
Single quotation ( ' ) marks must surround
literal strings in CQL statements. Use single quotation marks to
preserve upper case. |
{ key : value
} |
Map collection. Braces ( { } ) enclose map
collections or key value pairs. A colon separates the key and the
value. |
<datatype1,datatype2> |
Set, list, map, or tuple. Angle brackets ( <
> ) enclose data types in a set, list, map, or tuple.
Separate the data types with a comma. |
cql_statement; |
End CQL statement. A semicolon ( ; ) terminates
all CQL statements. |
[--] |
Separate the command line options from the command arguments with
two hyphens ( -- ). This syntax is useful when
arguments might be mistaken for command line options. |
' <schema> ... </schema>
' |
Search CQL only: Single quotation marks ( ' )
surround an entire XML schema declaration. |
@xml_entity='xml_entity_type' |
Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files. |
- IF NOT EXISTS
-
Suppresses the error if the type already exists in the keyspace. UDT scope is keyspace-wide.
- type_name
-
Unique name for the type. CQL types are reserved for a list. See type names.
- field_name cql_datatype
-
Define fields that are in the UDT in a comma-separated list:
field_name cql_datatype, field_name, cql_datatype
.
Example
This example creates a user-defined type cycling.basic_info
that consists
of personal data about an individual cyclist.
CREATE TYPE cycling.basic_info ( birthday timestamp, nationality text, height text, weight text );
After defining the UDT, you can create a table that has columns with the UDT. CQL collection columns and other columns support the use of user-defined types, as shown in Using CQL examples.