如何检查是否应用了CQL查询

时间:2019-01-09 15:26:52

标签: go cassandra gocql

我在Cassandra的前面有一个用golang编写的API服务器,因此我将gocql用作驱动程序。我想要的是如果有人尝试在Cassandra中创建重复项,则返回一个错误,因此我不仅需要幂等运算(可以通过if exist不存在子句来实现),还需要某种方式知道是否应用了查询。像SELECT WHERE TABLE FROM TABLE WHERE这样的初始请求primary_keys = blah LIMIT不是一个选项,因为INSERT操作应该是原子的。

当我在cqlsh中运行以下示例时,Cassandra会告诉您是否应用了查询:

    cqlsh> create table tests.demo (
       ... uuid text PRIMARY KEY,
       ... data text
       ... );

    cqlsh> insert into tests.demo (uuid, data) values ('test', 'data') if not exists;

     applied
    -----------
      True 

    cqlsh> insert into tests.demo (uuid, data) values ('test', 'data') if not exists;

       applied | uuid | data
    -----------+------+------
         False | test | data

由于query.Exec()仅返回错误,因此是否可以使用gocql达到相同的目的?

谢谢!

0 个答案:

没有答案