

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# User-defined jenis (UDT)
<a name="cql.ddl.type"></a>

*UDT * — Pengelompokan bidang dan tipe data yang dapat Anda gunakan untuk menentukan satu kolom di Amazon Keyspaces. Tipe data yang valid untuk UDT adalah semua tipe data Cassandra yang didukung, termasuk koleksi dan UDT lain yang telah Anda buat di ruang kunci yang sama. Untuk informasi selengkapnya tentang tipe data Cassandra yang didukung, lihat[Dukungan tipe data Cassandra](cassandra-apis.md#cassandra-data-type).

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

**Topics**
+ [BUAT JENIS](#cql.ddl.type.create)
+ [JENIS DROP](#cql.ddl.type.drop)

## BUAT JENIS
<a name="cql.ddl.type.create"></a>

Gunakan `CREATE TYPE` pernyataan untuk membuat tipe baru.

 **Sintaksis**

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

Di mana:
+ `IF NOT EXISTS``CREATE TYPE`mencegah kegagalan jika tipenya sudah ada. (Opsional)
+ `udt_name`adalah nama yang sepenuhnya memenuhi syarat dari UDT dalam format tipe, misalnya. `my_keyspace.my_type` Jika Anda menentukan ruang kunci saat ini dengan `USE` pernyataan, Anda tidak perlu menentukan nama keyspace.
+ `field_definition`terdiri dari nama dan tipe.

Tabel berikut menunjukkan contoh nama UDT yang diizinkan. Kolom pertama menunjukkan cara memasukkan nama saat Anda membuat tipe, kolom kedua menunjukkan bagaimana Amazon Keyspaces memformat nama secara internal. Amazon Keyspaces mengharapkan nama yang diformat untuk operasi seperti`GetType`.


| Nama yang dimasukkan | Nama yang diformat | Catatan | 
| --- | --- | --- | 
|  MY\_UDT  | my\_udt | Tanpa tanda kutip ganda, Amazon Keyspaces mengubah semua karakter huruf besar menjadi huruf kecil. | 
|  "MY\_UDT"  | MY\_UDT | Dengan tanda kutip ganda, Amazon Keyspaces menghormati karakter huruf besar, dan menghapus tanda kutip ganda dari nama yang diformat. | 
|  "1234"  | 1234 | Dengan tanda kutip ganda, nama dapat dimulai dengan angka, dan Amazon Keyspaces menghapus tanda kutip ganda dari nama yang diformat. | 
|  "Special\_Ch@r@cters<>\!\!"  | Special\_Ch@r@cters<>\!\! | Dengan tanda kutip ganda, nama dapat berisi karakter khusus, dan Amazon Keyspaces menghapus tanda kutip ganda dari nama yang diformat. | 
|  "nested""""""quotes"  | nested"""quotes | Amazon Keyspaces menghapus tanda kutip ganda luar dan tanda kutip ganda escape dari nama yang diformat. | 

**Contoh**

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

Anda dapat membuat sarang UDT jika UDT bersarang dibekukan. Untuk informasi selengkapnya tentang nilai default dan kuota untuk jenis, lihat[Kuota UDT Amazon Keyspaces dan nilai default](quotas.md#udt-table).

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

Untuk contoh kode lainnya yang menunjukkan cara membuat UDT, lihat[User-defined jenis (UDT) di Amazon Keyspaces](udts.md).

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

Gunakan `DROP TYPE` pernyataan untuk menghapus UDT. Anda hanya dapat menghapus jenis yang tidak digunakan oleh tipe atau tabel lain.

 **Sintaksis**

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

Di mana:
+ `IF EXISTS``DROP TYPE`mencegah kegagalan jika tipenya tidak ada. (Opsional)
+ `udt_name`adalah nama yang sepenuhnya memenuhi syarat dari UDT dalam format tipe, misalnya. `my_keyspace.my_type` Jika Anda menentukan ruang kunci saat ini dengan `USE` pernyataan, Anda tidak perlu menentukan nama keyspace.

**Contoh**

```
DROP TYPE udt_name;
```