如何使用 C# Datastax 驱动程序删除 Cassandra 上的表?

已收到
var keyspace = "mydb";
var datacentersReplicationFactors = new Dictionary<string, int>(0);
var replication = ReplicationStrategies.CreateNetworkTopologyStrategyReplicationProperty(datacentersReplicationFactors);

using (var cluster = Cluster.Builder().AddContactPoints("my_ip").Build())
using (var session = cluster.Connect())
{
    session.CreateKeyspaceIfNotExists(keyspace, replication, true);
    session.ChangeKeyspace(keyspace);

    var entityTable = new Table<Models.Entity>(session);
    var attributeTable = new Table<Models.Attribute>(session);

    entityTable.CreateIfNotExists(); // Worked
    attributeTable.CreateIfNotExists(); // Worked

    entityTable.Delete(); // Does nothing
    attributeTable.Delete();  // Does nothing
}

编辑:不使用原始查询session.Execute("DROP TABLE entities;");工作正常。

已收到

除非已经有一种我不知道的删除表的方法,否则您可以使用此扩展。

public static class DastaxTableExtensions
{
    public static void Drop<T>(this Table<T> table)
    {
        table.GetSession().Execute($"DROP TABLE {table.Name};");
    }

    public static void DropIfExists<T>(this Table<T> table)
    {
        table.GetSession().Execute($"DROP TABLE IF EXISTS {table.Name};");
    }
}

然后你可以像这样使用它

entityTable.Drop();
attributeTable.DropIfExists();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用DataStax C#驱动程序从Cassandra获取值

使用DataStax C#驱动程序处理Cassandra中的所有节点

使用DataStax C#驱动程序时故障转移不适用于Cassandra

Datastax C#驱动程序中的Cassandra timeuuid

Cassandra DataStax驱动程序:如何分页浏览

Datastax Cassandra Java驱动程序的Accessor是否使用分页?

Datastax Java Cassandra驱动程序:使用WHERE的多个AND语句?

Nodejs - Apache Cassandra(使用 Datastax 驱动程序)

DataStax C#驱动程序:如何创建具有IEnumerable映射设置的表?

如何使用Datastax Java驱动程序有效地使用批写入Cassandra?

无法使用 Cassandra Datastax Java 驱动程序连接到 Cassandra 节点之一

如何使用datastax驱动程序创建Cassandra连接池

如何使用带有Datastax Java驱动程序的CQL向Cassandra添加任意列?

如何使用DataStax Java驱动程序设置Cassandra客户端到节点的加密?

Datastax Cassandra Java驱动程序-对象映射器-自动创建表

Datastax Cassandra C ++驱动程序中核心连接和I / O线程之间的区别

C#Cassandra DataStax驱动程序版本兼容性

Datastax Python cassandra驱动程序构建在Ubuntu上失败

Cassandra Datastax驱动程序在访问器上设置分页状态

在使用Datastax Cassandra驱动程序时是否重新使用PreparedStatement?

如何使用 Python 驱动程序获取 Cassandra 表的大小?

Cassandra如何处理Datastax Java驱动程序中的阻塞执行语句

datastax cassandra驱动程序:如何从ResultSet列表中为插入语句返回成功或失败

Datastax Cassandra PHP驱动程序:如何知道CQL INSERT,UPDATE,DELETE成功

使用datastax驱动程序检索有关Cassandra集群数据中心的信息

使用 Datastax Cassandra 驱动程序时出现无效类型错误

Cassandra:使用DataStax Java驱动程序选择一系列TimeUUID

使用Datastax Java驱动程序无法通过Cassandra的UDT密钥检索

Datastax Node.js Cassandra驱动程序何时使用映射器与查询