Search code examples
cassandracqlcql3

How to auto generate uuid in cassandra CQL 3 command line


Just learning cassandra, is there a way to insert a UUID using CQL, ie

create table stuff (uid uuid primary key, name varchar);
insert into stuff (name) values('my name'); // fails
insert into stuff (uid, name) values(1, 'my name'); // fails

Can you do something like

insert into stuff (uid, name) values(nextuid(), 'my name');

Solution

  • You can with time uuids (type 1 UUID) using the now() function e.g.

    insert into stuff (uid, name) values(now(), 'my name');
    

    Works with uid or timeuuid. It generates a "guaranteed unique" UID value, which also contains the timestamp so is sortable by time.

    There isn't such a function for type 4 UUIDs though.


    UPDATE: This note pertains to older versions of Cassandra. For newer versions, see below.