I have some predefined columns in a Cassandra table/column family. I also get a another JSON /dictionary object which has key:value pair which are not predefined and hence were not included in the create table statement (I am using cql3 library on python). I want to add this data to my Cassandra table, I want a unique key in the json object to become a new column. If a key which has already been made a column is present in the json, Cassandra should just reject that query without throwing an exception. It throws an exception if I try to simply alter the table to add a pre existing column. Is there an alter table add column if column doesn't exists type query or should I handle it through exception handling?
Asked
Active
Viewed 1,894 times
1
-
Possible duplicate of [cassandra add column if not exists](https://stackoverflow.com/questions/25728944/cassandra-add-column-if-not-exists) – Dhruv Sangvikar Jul 10 '18 at 18:00
1 Answers
1
Currently there isn't a mechanism for doing this. The IF NOT EXISTS
functionality is currently only for CREATE and DROP modification statements (take a look at Conditional schema modifications).
I would remodel the table to allow what you call the key to be in a column (as in column of a table) and use a collection to store its various values ending up with something like:
key | date_added | values
--------+--------------------------------------+-------
1 | e64d8be0-4f2a-11e4-b409-138283d4b034 | ['item1', 'item2']
7 | e64d8be0-4f2a-11e4-b409-138283d4b034 | ['item1', 'item5']
1 | e64d8be0-4f2a-11e4-b409-138283d4b034 | ['item4']
On a side note, if you have a IF NOT EXISTS
alter statement every time you're carrying out a query you would incur a lot of overhead verifying that the row doesn't exist.

Lyuben Todorov
- 13,987
- 5
- 50
- 69
-
I am assuming, alter table is a constant time operation in Cassandra. – extraDarker Oct 09 '14 at 08:29