Singleton-Tabellen mithilfe von APIs bearbeiten

Erfahren Sie, wie Sie eine Singleton-Tabelle mit APIs ändern.

Sie ändern eine Singleton-Tabelle wie folgt:

Tabelle mit TableRequest-API ändern

Mit der TableRequest-API können Sie die Definition einer NoSQL-Tabelle ändern.

Die Klasse TableRequest wird zum Ändern von Tabellen verwendet. Die Ausführung der von dieser Anforderung angegebenen Vorgänge ist asynchron. Dies sind möglicherweise Vorgänge mit langer Ausführungszeit. TableResult wird von TableRequest-Vorgängen zurückgegeben und kapselt den Status der Tabelle. Weitere Informationen zur TableRequest-Klasse und ihren Methoden finden Sie in der Oracle NoSQL Java SDK-API-Referenz.

Laden Sie den vollständigen Code AlterTable.java aus den Beispielen hier herunter.

/**
* Alter the table stream_acct and add a column
*/
private static void alterTab(NoSQLHandle handle) throws Exception {
   String alterTableDDL = "ALTER TABLE " + tableName +"(ADD acctname STRING)";
   TableRequest treq = new TableRequest().setStatement(alterTableDDL);
   System.out.println("Altering table " + tableName);
   TableResult tres = handle.tableRequest(treq);
   tres.waitForCompletion(handle, 60000, /* wait 60 sec */
   1000); /* delay ms for poll */
   System.out.println("Table " + tableName + " is altered");
}

Die Klasse borneo.TableRequest wird zum Ändern von Tabellen verwendet. Alle Aufrufe von borneo.NoSQLHandle.table_request() sind asynchron. Daher müssen Sie das Ergebnis prüfen und borneo.TableResult.wait_for_completion() aufrufen, um zu warten, bis der Vorgang abgeschlossen ist. Weitere Informationen zu table_request und den Methoden finden Sie in der Oracle NoSQL Python-SDK-API-Referenz.

Laden Sie den vollständigen Code AlterTable.py aus den Beispielen hier herunter.

def alter_table(handle):
   statement = '''ALTER TABLE  stream_acct(ADD acctname STRING)'''
   request = TableRequest().set_statement(statement)
   table_result = handle.do_table_request(request, 40000, 3000)
   table_result.wait_for_completion(handle, 40000, 3000)
   print('Table stream_acct is altered')

Die Klasse TableRequest wird zum Ändern von Tabellen verwendet. Die Ausführung der mit TableRequest angegebenen Vorgänge ist asynchron. Dies sind möglicherweise Vorgänge mit langer Ausführungszeit. Diese Anforderung wird als Eingabe eines Client.DoTableRequest()-Vorgangs verwendet, der eine TableResult zurückgibt, die zum Polling verwendet werden kann, bis die Tabelle den gewünschten Status erreicht. Weitere Informationen zu den verschiedenen Methoden der Klasse TableRequest finden Sie in der Oracle NoSQL Go-SDK-API-Referenz.

Laden Sie den vollständigen Code AlterTable.go aus den Beispielen hier herunter.

//alter an existing table and add a column
func alterTable(client *nosqldb.Client, err error, tableName string)(){
   stmt := fmt.Sprintf("ALTER TABLE %s (ADD acctName STRING)",tableName)
   tableReq := &nosqldb.TableRequest{
		Statement: stmt,
   }
   tableRes, err := client.DoTableRequest(tableReq)
   if err != nil {
      fmt.Printf("cannot initiate ALTER TABLE request: %v\n", err)
      return
   }
   // The alter table request is asynchronous, wait for table alteration to complete.
   _, err = tableRes.WaitForCompletion(client, 60*time.Second, time.Second)
   if err != nil {
      fmt.Printf("Error finishing ALTER TABLE request: %v\n", err)
      return
   }
   fmt.Println("Altered table ", tableName)
   return
}

Sie können eine Tabelle mit der Methode tableDDL ändern. Diese Methode ist asynchron und gibt einen Promise von TableResult zurück. TableResult ist ein einfaches JavaScript-Objekt, das den Status der Tabelle nach dem DDL-Vorgang kapselt. Methodendetails finden Sie in der Klasse NoSQLClient.

Laden Sie den vollständigen JavaScript-Code AlterTable.js aus den Beispielen hier herunter, und den vollständigen TypeScript-Code AlterTable.ts aus den Beispielen hier.

//alter a table and add a column
async function alterTable(handle) {
   const alterDDL = `ALTER TABLE ${TABLE_NAME} (ADD acctname STRING)`;
   let res =  await handle.tableDDL(alterDDL);
   console.log('Table altered: ' + TABLE_NAME);
}

Sie können eine Tabelle mit einer der beiden Methoden ExecuteTableDDLAsync und ExecuteTableDDLWithCompletionAsync ändern. Beide Methoden geben Task<TableResult> zurück. Die TableResult-Instanz kapselt den Status der Tabelle nach dem DDL-Vorgang. Weitere Informationen zu diesen Methoden finden Sie in der Oracle NoSQL Dotnet SDK-API-Referenz.

Laden Sie den vollständigen Code AlterTable.cs aus den Beispielen hier herunter.

private static async Task alterTable(NoSQLClient client){
   var sql = $@"ALTER TABLE {TableName}(ADD acctname STRING)";
   var tableResult = await client.ExecuteTableDDLAsync(sql);
   // Wait for the operation completion
   await tableResult.WaitForCompletionAsync();
   Console.WriteLine("  Table {0} is altered", tableResult.TableName);
}

Verwandte Themen