incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Popescu <al...@datastax.com>
Subject Re: CQL Tables in Cassandra with an Index
Date Fri, 08 Nov 2013 19:51:54 GMT
Conditional inserts/updates (lightweight transactions) are available only
in C* 2.0+.

Also most of the time you should try to think about alternative ways to
solve the problem and rely on these only if you cannot find a different
solution (the reason for this is that they come with performance penalties
and you'd be better off with a scalable & performant design, rather than
taking the easy way out ;-)


On Fri, Nov 8, 2013 at 11:40 AM, Techy Teck <comptechgeeky@gmail.com> wrote:

> If I execute the above query from CQL shell, it doesn't work for me at
> all... This is what I get -
>
> cqlsh:pp> insert into test_new (employee_id, employee_name, value,
> last_modified_date) values ('1', 'e29',  'some_new_value', now()) if not
> exists
> ;
> Bad Request: line 1:123 missing EOF at 'if'
>
> Is there anything I am missing here? I am running Cassandra 1.2.3
>
>
>
>
> On Fri, Nov 8, 2013 at 5:33 AM, DuyHai Doan <doanduyhai@gmail.com> wrote:
>
>> Consider using the new lightweight transaction
>>
>>  insert into test_new (employee_id, employee_name, value,
>> last_modified_date) values ('1', 'e29',  'some_new_value', now()) *if
>> not exists*;
>>
>>
>>
>> Le vendredi 8 novembre 2013 03:53:12 UTC+1, Techy Teck a écrit :
>>
>>> I am using the below table in our use case -
>>>
>>>     create table test_new (
>>>         employee_id text,
>>>         employee_name text,
>>>         value text,
>>>         last_modified_date timeuuid,
>>>         primary key (employee_id, last_modified_date)
>>>        );
>>>
>>>     create index employee_name_idx on test_new (employee_name);
>>>
>>> In my above table employee_id will be unique always starting from 1 till
>>> 32767. So our query pattern is like this -
>>>
>>>     1. Give me everything for any of the employee_id?
>>>     2. Give me everything for what has changed in last 5 minutes?
>>>     3. Give me everything for any of the employee_name?
>>>
>>>
>>> I will be inserting below data into my above table -
>>>
>>>     insert into test_new (employee_id, employee_name, value,
>>> last_modified_date) values ('1', 'e27',  'some_value', now());
>>>     insert into test_new (employee_id, employee_name, value,
>>> last_modified_date) values ('2', 'e27',  'some_new_value', now());
>>>     insert into test_new (employee_id, employee_name, value,
>>> last_modified_date) values ('3', 'e28',  'some_new_again_value', now());
>>>
>>> So now is there any way to avoid this particular scenario in my above
>>> table for the below query.. Somehow somebody by mistake is trying to
>>> execute the below query then it will create another row with employee_id as
>>> 1 and with other fields? I don't want anyone to insert the same employee_id
>>> again if it is already there in the cassandra database.. Any thoughts?
>>>
>>>     insert into test_new (employee_id, employee_name, value,
>>> last_modified_date) values ('1', 'e29',  'some_new_value', now());
>>>
>>>
>>>  To unsubscribe from this group and stop receiving emails from it, send
>> an email to java-driver-user+unsubscribe@lists.datastax.com.
>>
>
>  To unsubscribe from this group and stop receiving emails from it, send an
> email to java-driver-user+unsubscribe@lists.datastax.com.
>



-- 

:- a)


Alex Popescu
Sen. Product Manager @ DataStax
@al3xandru

Mime
View raw message