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 <comptechge...@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 <doanduy...@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+unsubscr...@lists.datastax.com. >> > > To unsubscribe from this group and stop receiving emails from it, send an > email to java-driver-user+unsubscr...@lists.datastax.com. > -- :- a) Alex Popescu Sen. Product Manager @ DataStax @al3xandru