Cassandra - Benutzerdefinierte CQL-Datentypen

CQL bietet die Möglichkeit, benutzerdefinierte Datentypen zu erstellen und zu verwenden. Sie können einen Datentyp erstellen, um mehrere Felder zu verarbeiten. In diesem Kapitel wird erläutert, wie Sie einen benutzerdefinierten Datentyp erstellen, ändern und löschen.

Erstellen eines benutzerdefinierten Datentyps

Der Befehl CREATE TYPEwird verwendet, um einen benutzerdefinierten Datentyp zu erstellen. Die Syntax lautet wie folgt:

CREATE TYPE <keyspace name>. <data typename>
( variable1, variable2).

Beispiel

Im Folgenden finden Sie ein Beispiel zum Erstellen eines benutzerdefinierten Datentyps. In diesem Beispiel erstellen wir einecard_details Datentyp mit den folgenden Details.

Feld Feldname Datentyp
Kreditkartennummer num int
Kreditkarten-Pin Stift int
Name auf der Kreditkarte Name Text
cvv cvv int
Kontaktdaten des Karteninhabers Telefon einstellen
cqlsh:tutorialspoint> CREATE TYPE card_details (
   ... num int,
   ... pin int,
   ... name text,
   ... cvv int,
   ... phone set<int>
... );

Note - Der für den benutzerdefinierten Datentyp verwendete Name sollte nicht mit den reservierten Typnamen übereinstimmen.

Überprüfung

Verwenden Sie die DESCRIBE Befehl, um zu überprüfen, ob der erstellte Typ erstellt wurde oder nicht.

CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>
   );

Ändern eines benutzerdefinierten Datentyps

ALTER TYPE- Befehl wird verwendet, um einen vorhandenen Datentyp zu ändern. Mit ALTER können Sie ein neues Feld hinzufügen oder ein vorhandenes Feld umbenennen.

Hinzufügen eines Felds zu einem Typ

Verwenden Sie die folgende Syntax, um einem vorhandenen benutzerdefinierten Datentyp ein neues Feld hinzuzufügen.

ALTER TYPE typename
ADD field_name field_type;

Der folgende Code fügt dem Feld ein neues Feld hinzu Card_detailsDatentyp. Hier fügen wir ein neues Feld namens E-Mail hinzu.

cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;

Überprüfung

Verwenden Sie die DESCRIBE Befehl, um zu überprüfen, ob das neue Feld hinzugefügt wurde oder nicht.

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   );

Umbenennen eines Feldes in einem Typ

Verwenden Sie die folgende Syntax, um einen vorhandenen benutzerdefinierten Datentyp umzubenennen.

ALTER TYPE typename
RENAME existing_name TO new_name;

Der folgende Code ändert den Namen des Feldes in einem Typ. Hier benennen wir das Feld E-Mail in Mail um.

cqlsh:tutorialspoint> ALTER TYPE card_details RENAME email TO mail;

Überprüfung

Verwenden Sie die DESCRIBE Befehl, um zu überprüfen, ob sich der Typname geändert hat oder nicht.

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   mail text
   );

Löschen eines benutzerdefinierten Datentyps

DROP TYPEist der Befehl zum Löschen eines benutzerdefinierten Datentyps. Im Folgenden finden Sie ein Beispiel zum Löschen eines benutzerdefinierten Datentyps.

Beispiel

Überprüfen Sie vor dem Löschen die Liste aller benutzerdefinierten Datentypen mit DESCRIBE_TYPES Befehl wie unten gezeigt.

cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card

Löschen Sie aus den beiden Typen den genannten Typ card Wie nachfolgend dargestellt.

cqlsh:tutorialspoint> drop type card;

Verwenden Sie die DESCRIBE Befehl, um zu überprüfen, ob der Datentyp gelöscht wurde oder nicht.

cqlsh:tutorialspoint> describe types;

card_details