How can I set Cassandra primary key?

Viewed 31

I specify 2 unique data types, but when one of them is different, it keeps adding records.

enter image description here

1 Answers

The table schema has a compound primary key, i.e. it is composed of a partition key (username) and clustering key (email). This means that each partition has one or more rows of emails.

It is a completely different schema to a table with just a simple primary key (only has a partition key, no clustering key) like this:

CREATE TABLE users_by_username (
    username text,
    ...
    PRIMARY KEY (username)
)

This table would only ever have one row in each partition. Cheers!

[UPDATE] If you want your table to be partitioned by BOTH username + email, you need to create a new table which has a composite partition key (partition key has two or more columns):

CREATE TABLE users_by_username_email (
    username text,
    email text,
    ...
    PRIMARY KEY ( (username, email) )
)

Note the difference: BOTH columns are enclosed in a bracket so they are treated as one key.

Related