Singleton-Tabellen mit APIs ändern

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

Sie ändern eine Singleton-Tabelle so:
  • Neue Felder zu einer bestehenden Tabelle hinzufügen
  • Derzeit vorhandene Felder in einer Tabelle löschen
  • TTL-Standardwert ändern
  • Tabellenlimits ändern

Tabelle mit der TableRequest-API ändern

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

Mit der Klasse TableRequest werden Tabellen geändert. Die Ausführung der von dieser Anforderung angegebenen Vorgänge ist asynchron. Dies sind möglicherweise Operationen mit langer Ausführungszeit. TableResult wird von TableRequest-Vorgängen zurückgegeben und kapselt den Status der Tabelle. Weitere Informationen zur Klasse TableRequest und ihren Methoden finden Sie unter 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");
}

Mit der Klasse borneo.TableRequest werden Tabellen geändert. 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 auf den Abschluss des Vorgangs zu warten. Weitere Informationen zu table_request und den zugehörigen Methoden finden Sie unter 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')

Mit der Klasse TableRequest werden Tabellen geändert. Die Ausführung von Vorgängen, die mit TableRequest angegeben werden, ist asynchron. Dies sind möglicherweise Operationen 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
}

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

Laden Sie den vollständigen JavaScript-Code AlterTable.js aus den Beispielen hier und den vollständigen TypeScript-Code AlterTable.ts aus den Beispielen hier herunter.
//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 Instanz TableResult 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);
}