Defining a basic primary key
A simple primary key consists of only the partition key that determines which node stores the data.
NULL
value cannot be
inserted into a PRIMARY KEY
column. This restriction applies to
both partition keys and clustering columns.Often, your first venture into using DSE involves tables with simple primary keys. Keep in mind that only the primary key can be specified when retrieving data from the table (unless using secondary indexes). If an application needs a simple lookup table using a single unique identifier, then a simple primary key is the best choice. The table shown uses id as the primary key.
If you have simple retrieval needs, use a simple primary key.
Using a simple primary key
Use a simple primary key to create columns that you can query to return sorted results.
cyclist_name
table storing
an ID number and a cyclist's first and last names in columns. The table uses a UUID
as a Primary_key. This table can be queried to discover the
name of a cyclist given their ID number.NULL
value cannot be
inserted into a PRIMARY KEY
column. This restriction applies to
both partition keys and clustering columns.A simple primary key table can be created in multiple ways, as shown in the following examples.
Procedure
-
Create the table cyclist_name in the
cycling keyspace, making id the
primary key. Insert the
PRIMARY KEY
keywords after the column name in theCREATE TABLE
definition. Before creating the table, set the keyspace with aUSE
statement.USE cycling; CREATE TABLE cyclist_name ( id UUID PRIMARY KEY, lastname text, firstname text );
-
This same example can be written with the primary key identified at the end of
the table definition. Insert the
PRIMARY KEY
keywords after the last column definition in theCREATE TABLE
definition, followed by the column name of the key. The column name of the primary key is enclosed in parentheses, which isid
in the example below.USE cycling; CREATE TABLE cyclist_name ( id UUID, lastname text, firstname text, PRIMARY KEY (id) );
-
The keyspace name can be used to identify the keyspace in the
CREATE TABLE
statement instead of theUSE
statement.CREATE TABLE cycling.cyclist_name ( id UUID, lastname text, firstname text, PRIMARY KEY (id) );