获取插入行的ID:Cassandra .Net

3
我正在使用DataStax C#驱动程序将一行数据插入Cassandra数据库,我的示例代码如下:
var cluster = Cluster.Builder()
  .AddContactPoints("localhost")
  .Build();

using(cluster)
{
    var connection = cluster.Connect();
    connection.ChangeKeyspace("development");
    var simple = connection.Prepare(@"INSERT INTO test(id,customer,content,created_at,line_ids) VALUES (uuid(), 'test customer', ?,'2014-10-24',?);");

    var cmd = simple.Bind("content",new HashSet<Guid>{ Guid.NewGuid() });


    var result = connection.Execute(cmd);
}

如何获取我插入的行的ID?


1
为什么不自己传入 id 呢?用 Guid.NewGuid() 创建一个 guid 来替换 uuid(),因为你是第一个创建它的人,所以你会得到它。 - kha
那会有任何性能影响吗?Cassandra中uuid列是否有特定格式的要求? - Ceilingfish
我认为这不会对性能造成任何负面影响。Cassandra中的uuid列是GUID(Java的UUID),与.Net Guid兼容。先在命令行中使用简单的cql插入尝试一下,看看它是否正常工作,然后您就可以安全地在您的代码中使用它 :)。 - kha
@kha 看起来这是最好的解决方案,你能把你的评论转化成一个答案吗?这样我就可以接受它了。谢谢。 - Ceilingfish
很高兴能够帮助。已将其添加为答案。 - kha
1个回答

5
为什么不自己传入id呢?用Guid.NewGuid()创建一些全局唯一标识符(guid),替换掉uuid(),由于是你创建的,所以你将拥有它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接