ネームスペースの管理

SHOW NAMESPACES

SHOW NAMESPACES文は、システムのネームスペースのリストを提供します。出力をJSON形式にする場合は、AS JSONを指定できます。

例1: 次の文は、システムに存在するネームスペースをリストします。
SHOW NAMESPACES
出力:
namespaces
  sysdefault
例2: 次の文は、システムに存在するネームスペースをJSON形式でリストします。
SHOW AS JSON NAMESPACES
出力:
{"namespaces" : ["sysdefault"]}

DROP NAMESPACE

DROP NAMESPACE文を使用して、ネームスペースを削除できます。

IF EXISTSはオプションの句です。この句を指定し、同じ名前のネームスペースが存在しない場合、エラーは生成されません。この句を指定せず、同じ名前のネームスペースが存在しない場合は、ネームスペースが存在しないことを示すエラーが生成されます。

CASCADEは、表とその索引をこのネームスペース内で削除するかどうかを指定できるオプションの句です。この句を指定し、ネームスペースに表が含まれている場合は、このネームスペース内のすべての表とともにネームスペースが削除されます。この句を指定せず、ネームスペースに表が含まれている場合は、ネームスペースが空でないことを示すエラーが生成されます。

次の文は、ns1という名前のネームスペースを削除します。
DROP NAMESPACE IF EXISTS ns1 CASCADE

APIの使用によるネームスペースの削除:

SystemRequestクラスを使用してネームスペースを削除できます。SystemRequestクラスは、表に依存しない管理操作を実行するために使用します。これらの操作は非同期であり、完了を確認する必要があります。

こちらにあるサンプルの中からフル・コードNamespaces.javaをダウンロードします。
private static void dropNS(NoSQLHandle handle) throws Exception {
    String dropNSDDL = "DROP NAMESPACE " + nsName;
    SystemRequest sysreq = new SystemRequest();
    sysreq.setStatement(dropNSDDL.toCharArray());
    SystemResult sysres = handle.systemRequest​(sysreq);
    sysres.waitForCompletion​(handle, 60000,1000);
    System.out.println("Namespace " + nsName + " is dropped");
}

SystemRequestクラスを使用してネームスペースを削除できます。SystemRequestクラスは、表に依存しない管理操作を実行するために使用します。

こちらにあるサンプルの中からフル・コードNamespaces.pyをダウンロードします。
def drop_ns(handle):
   statement = '''DROP NAMESPACE ns1'''
   sysreq = SystemRequest().set_statement(statement)
   sys_result = handle.system_request(sysreq)
   sys_result.wait_for_completion(handle, 40000, 3000)
   print('Namespace: ns1 is dropped')

SystemRequestクラスを使用してネームスペースを削除できます。SystemRequestクラスは、表に依存しない管理操作を実行するために使用します。これらは長時間実行される可能性がある操作であり、操作の完了を確認する必要があります。

こちらにあるサンプルの中からフル・コードNamespaces.goをダウンロードします。
func dropNS(client *nosqldb.Client, err error)(){
    stmt := fmt.Sprintf("DROP NAMESPACE ns1")
    sysReq := &nosqldb.SystemRequest{
		Statement: stmt,
    }
    sysRes, err := client.DoSystemRequest(sysReq)
    _, err = sysRes.WaitForCompletion(client, 60*time.Second, time.Second)
    if err != nil {
        fmt.Printf("Error finishing CREATE NAMESPACE request: %v\n", err)
        return
    }
    fmt.Println("Dropped Namespace ns1 ")
    return
}

adminDDLメソッドを使用してネームスペースを作成できます。adminDDLメソッドは、表に依存しない管理操作を実行するために使用します。

こちらからJavaScriptフル・コードNamespaces.jsを、こちらからTypeScriptフル・コードNamespaces.tsをダウンロードします。
async function dropNS(handle) {
   const dropNS = `DROP NAMESPACE ns1`;
   let res = await handle.adminDDL(dropNS);
   console.log('Namespace dropped: ns1' );
}

ExecuteAdminSyncメソッドは、表に依存しない管理操作を実行するために使用します。

こちらにあるサンプルの中からフル・コードNamespaces.csをダウンロードします。
private static async Task dropNS(NoSQLClient client){
   var sql = $@"DROP NAMESPACE ns1";
   var adminResult = await client.ExecuteAdminAsync(sql);
   // Wait for the operation completion
   await adminResult.WaitForCompletionAsync();
   Console.WriteLine("Dropped namespace ns1");
}