View a markdown version of this page

User-defined types (UDT) - Amazon Keyspaces (pour Apache Cassandra)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

User-defined types (UDT)

UDT  : regroupement de champs et de types de données que vous pouvez utiliser pour définir une colonne unique dans Amazon Keyspaces. Les types de données valides pour les UDT sont tous les types de données Cassandra pris en charge, y compris les collections et autres UDT que vous avez déjà créés dans le même espace de touches. Pour plus d'informations sur les types de données Cassandra pris en charge, consultezSupport des types de données Cassandra.

user_defined_type::= udt_name udt_name::= [ keyspace_name '.' ] identifier
Déclarations pour les types

CREATE TYPE

Utilisez l'CREATE TYPEinstruction pour créer un nouveau type.

Syntaxe

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

Où :

  • IF NOT EXISTSCREATE TYPEempêche l'échec si le type existe déjà. (Facultatif)

  • udt_nameest le nom complet de l'UDT au format de type, par exemple. my_keyspace.my_type Si vous définissez l'espace clé actuel à l'aide de l'USEinstruction, il n'est pas nécessaire de spécifier le nom de l'espace clé.

  • field_definitionse compose d'un nom et d'un type.

Le tableau suivant présente des exemples de noms UDT autorisés. La première colonne indique comment saisir le nom lorsque vous créez le type, la deuxième indique comment Amazon Keyspaces met en forme le nom en interne. Amazon Keyspaces attend le nom formaté pour des opérations telles que. GetType

Nom saisi Nom formaté Remarque
MY_UDT my_udt Sans guillemets doubles, Amazon Keyspaces convertit tous les caractères majuscules en minuscules.
"MY_UDT" MY_UDT Avec les guillemets doubles, Amazon Keyspaces respecte les majuscules et supprime les guillemets doubles du nom mis en forme.
"1234" 1234 Avec des guillemets doubles, le nom peut commencer par un chiffre, et Amazon Keyspaces supprime les guillemets doubles du nom mis en forme.
"Special_Ch@r@cters<>!!" Special_Ch@r@cters<>!! Avec les guillemets doubles, le nom peut contenir des caractères spéciaux, et Amazon Keyspaces supprime les guillemets doubles du nom mis en forme.
"nested""""""quotes" nested"""quotes Amazon Keyspaces supprime les guillemets extérieurs et les guillemets doubles d'échappement du nom mis en forme.

Exemples

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

Vous pouvez imbriquer des UDT si l'UDT imbriqué est gelé. Pour plus d'informations sur les valeurs par défaut et les quotas pour les types, consultezQuotas UDT et valeurs par défaut d'Amazon Keyspaces.

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

Pour d'autres exemples de code qui montrent comment créer des UDT, consultezUser-defined types (UDT) dans Amazon Keyspaces.

DROP TYPE

Utilisez l'DROP TYPEinstruction pour supprimer un UDT. Vous pouvez uniquement supprimer un type qui n'est pas utilisé par un autre type ou une autre table.

Syntaxe

drop_type_statement ::= DROP TYPE [ IF EXISTS ] udt_name

Où :

  • IF EXISTSDROP TYPEempêche l'échec si le type n'existe pas. (Facultatif)

  • udt_nameest le nom complet de l'UDT au format de type, par exemple. my_keyspace.my_type Si vous définissez l'espace clé actuel à l'aide de l'USEinstruction, il n'est pas nécessaire de spécifier le nom de l'espace clé.

Exemple

DROP TYPE udt_name;