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