

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tipi definiti dall'utente () UDTs
<a name="cql.ddl.type"></a>

*UDT*: un raggruppamento di campi e tipi di dati che puoi utilizzare per definire una singola colonna in Amazon Keyspaces. I tipi di dati validi UDTs sono tutti i tipi di dati Cassandra supportati, comprese le raccolte e altri UDTs che hai già creato nello stesso keyspace. Per ulteriori informazioni sui tipi di dati Cassandra supportati, consulta. [Supporto per i tipi di dati Cassandra](cassandra-apis.md#cassandra-data-type)

```
user_defined_type::= udt_name
udt_name::= [ keyspace_name '.' ] identifier
```

**Topics**
+ [CREATE TYPE](#cql.ddl.type.create)
+ [DROP TYPE](#cql.ddl.type.drop)

## CREATE TYPE
<a name="cql.ddl.type.create"></a>

Utilizzate l'`CREATE TYPE`istruzione per creare un nuovo tipo.

 **Sintassi**

```
create_type_statement ::=  CREATE TYPE [ IF NOT EXISTS ] udt_name
    '('field_definition ( ',' field_definition)* ')'
            field_definition::= identifier cql_type
```

Dove:
+ `IF NOT EXISTS``CREATE TYPE`impedisce di fallire se il tipo esiste già. (Facoltativo)
+ `udt_name`è il nome completo dell'UDT in formato type, ad esempio. `my_keyspace.my_type` Se si definisce lo spazio chiave corrente con l'`USE`istruzione, non è necessario specificare il nome dello spazio chiave.
+ `field_definition`è costituito da un nome e da un tipo.

La tabella seguente mostra esempi di nomi UDT consentiti. La prima colonna mostra come inserire il nome quando si crea il tipo, la seconda colonna mostra come Amazon Keyspaces formatta il nome internamente. Amazon Keyspaces prevede il nome formattato per operazioni come. `GetType`


| Nome inserito | Nome formattato | Nota | 
| --- | --- | --- | 
|  MY\$1UDT  | my\$1udt | Senza virgolette, Amazon Keyspaces converte tutti i caratteri maiuscoli in minuscoli. | 
|  "MY\$1UDT"  | MY\$1UDT | Con le virgolette doppie, Amazon Keyspaces rispetta i caratteri maiuscoli e rimuove le virgolette dal nome formattato. | 
|  "1234"  | 1234 | Con le virgolette doppie, il nome può iniziare con un numero e Amazon Keyspaces rimuove le virgolette dal nome formattato. | 
|  "Special\$1Ch@r@cters<>\$1\$1"  | Special\$1Ch@r@cters<>\$1\$1 | Con le virgolette doppie, il nome può contenere caratteri speciali e Amazon Keyspaces rimuove le virgolette dal nome formattato. | 
|  "nested""""""quotes"  | nested"""quotes | Amazon Keyspaces rimuove le virgolette doppie esterne e le virgolette di escape dal nome formattato. | 

**Esempi**

```
CREATE TYPE my_keyspace.phone (
    country_code int,
    number text
);
```

Puoi nidificare UDTs se l'UDT annidato è bloccato. Per ulteriori informazioni sui valori predefiniti e sulle quote per i tipi, consulta. [Quote e valori predefiniti di Amazon Keyspaces UDT](quotas.md#udt-table)

```
CREATE TYPE my_keyspace.user (
    first_name text,
    last_name text,
    phones FROZEN<phone>
);
```

Per altri esempi di codice che mostrano come creare UDTs, consulta[Tipi definiti dall'utente (UDTs) in Amazon Keyspaces](udts.md).

## DROP TYPE
<a name="cql.ddl.type.drop"></a>

Utilizzate l'`DROP TYPE`istruzione per eliminare un UDT. È possibile eliminare solo un tipo che non è utilizzato da un altro tipo o tabella.

 **Sintassi**

```
drop_type_statement ::=  DROP TYPE [ IF EXISTS ] udt_name
```

Dove:
+ `IF EXISTS``DROP TYPE`impedisce di fallire se il tipo non esiste. (Facoltativo)
+ `udt_name`è il nome completo dell'UDT in formato type, ad esempio. `my_keyspace.my_type` Se si definisce lo spazio chiave corrente con l'`USE`istruzione, non è necessario specificare il nome dello spazio chiave.

**Esempio**

```
DROP TYPE udt_name;
```