Modificando Tabelas Singleton Usando APIs

Saiba como modificar uma tabela única usando APIs.

Você modifica uma tabela única para:
  • Adicionar novos campos a uma tabela existente
  • Excluir campos existentes em uma tabela
  • To change the default TTL value
  • Modificar limites da tabela

Usando a API TableRequest para alterar a tabela

Você pode usar a API TableRequest para alterar a definição de uma tabela NoSQL.

A classe TableRequest é usada para modificar tabelas. A execução das operações especificadas por esta solicitação é assíncrona. Estas são operações de execução potencialmente longa. TableResult é retornado das operações TableRequest e encapsula o estado da tabela. Consulte Oracle NoSQL Java SDK API Reference para obter mais detalhes sobre a classe TableRequest e seus métodos.

Faça download do código completo AlterTable.java nos exemplos aqui.
/**
* 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");
}

A classe borneo.TableRequest é usada para modificar tabelas. Todas as chamadas para borneo.NoSQLHandle.table_request() são assíncronas; portanto, é necessário verificar o resultado e chamar borneo.TableResult.wait_for_completion() para aguardar a conclusão da operação. Consulte Oracle NoSQL Python SDK API Reference para obter mais detalhes sobre table_request e seus métodos.

Faça download do código completo AlterTable.py nos exemplos aqui.
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')

A classe TableRequest é usada para modificar tabelas. A execução de operações especificadas por TableRequest é assíncrona. Estas são operações de execução potencialmente longa. Essa solicitação é usada como a entrada de uma operação Client.DoTableRequest(), que retorna um TableResult que pode ser usado para sondar até que a tabela atinja o estado desejado. Consulte Referência da API do Oracle NoSQL Go SDK para obter mais detalhes sobre os vários métodos da classe TableRequest.

Faça download do código completo AlterTable.go nos exemplos aqui.
//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
}

Você pode usar o método tableDDL para modificar uma tabela. Esse método é assíncrono e retorna uma Promessa de TableResult. O TableResult é um objeto JavaScript simples que encapsula o estado da tabela após a operação DDL. Para obter detalhes do método, consulte a classe NoSQLClient.

Faça download do código JavaScript completo AlterTable.js nos exemplos aqui e do código TypeScript completo AlterTable.ts nos exemplos aqui.
//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);
}

Você pode usar um dos dois métodos ExecuteTableDDLAsync e ExecuteTableDDLWithCompletionAsync para modificar uma tabela. Os dois métodos retornam Task<TableResult>. A instância TableResult encapsula o estado da tabela após a operação DDL. Consulte Referência da API do Oracle NoSQL Dotnet SDK para obter mais detalhes sobre esses métodos.

Faça download do código completo AlterTable.cs nos exemplos aqui.
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);
}