I am trying to create a WIDE Column Table, 20,000+ columns
Initially I was thinking I would use:
CREATE TABLE details (
key TEXT,
detail map<TEXT, TEXT>
PRIMARY KEY (KEY)
);
Inserting into this table works fine
UPDATE details SET detail = detail + { 'col1': '12'} where key='123' ;
UPDATE details SET detail = detail + { 'col20000': 'ABCD'} where key='123' ;
However, I would like to read an individual detail:
select detail[col1] where key='123'
when executing this query I get the following error:
no viable alternative at input '['
Will this work, or do I need a different approach?
Collections are small groups of data that you fetch all at once.
If you want to access tuples at a finer level, and still be able to ask "what are all the pairs of data for a given key," you should use a table like this:
CREATE TABLE details (
key TEXT,
detail_key text,
detail_value text,
PRIMARY KEY (key, detail_key)
);
This will allow SELECT * FROM details WHERE key = ?
as well as SELECT * FROM detail WHERE key = ? AND detail_key = ?
.