Modificación de Tablas Singleton mediante API

Descubra cómo modificar una tabla única mediante las API.

Puede modificar una tabla singleton para:
  • Agregar nuevos campos a una tabla existente
  • Suprimir los campos existentes actualmente en una tabla
  • Para cambiar el valor por defecto de TTL
  • Modificar los límites de la tabla

Uso de la API TableRequest para modificar la tabla

Puede utilizar la API TableRequest para cambiar la definición de una tabla NoSQL.

La clase TableRequest se utiliza para modificar tablas. La ejecución de las operaciones especificadas por esta solicitud es asíncrona. Se trata de operaciones de larga duración. Las operaciones TableRequest devuelven TableResult y encapsula el estado de la tabla. Consulte Referencia de API de SDK de Java de Oracle NoSQL para obtener más información sobre la clase TableRequest y sus métodos.

Descargue el código completo AlterTable.java de los ejemplos aquí.
/**
* 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");
}

La clase borneo.TableRequest se utiliza para modificar tablas. Todas las llamadas a borneo.NoSQLHandle.table_request() son asíncronas, por lo que es necesario comprobar el resultado y llamar a borneo.TableResult.wait_for_completion() para esperar a que finalice la operación. Consulte Referencia de API de SDK de Python NoSQL de Oracle para obtener más información sobre table_request y sus métodos.

Descargue el código completo AlterTable.py de los ejemplos aquí.
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')

La clase TableRequest se utiliza para modificar tablas. La ejecución de las operaciones especificadas por TableRequest es asíncrona. Se trata de operaciones de larga duración. Esta solicitud se utiliza como entrada de una operación Client.DoTableRequest(), que devuelve un valor TableResult que se puede utilizar para sondear hasta que la tabla alcance el estado deseado. Consulte Referencia de API de SDK de Go de Oracle NoSQL para obtener más información sobre los distintos métodos de la clase TableRequest.

Descargue el código completo AlterTable.go de los ejemplos aquí.
//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
}

Puede utilizar el método tableDDL para modificar una tabla. Este método es asíncrono y devuelve una promesa de TableResult. TableResult es un objeto JavaScript sin formato que encapsula el estado de la tabla después de la operación DDL. Para obtener detalles sobre el método, consulte la clase NoSQLClient.

Descargue el código JavaScript completo AlterTable.js de los ejemplos aquí y el código TypeScript completo AlterTable.ts de los ejemplos aquí.
//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);
}

Puede utilizar cualquiera de los dos métodos ExecuteTableDDLAsync y ExecuteTableDDLWithCompletionAsync para modificar una tabla. Ambos métodos devuelven Task<TableResult>. La instancia TableResult encapsula el estado de la tabla después de la operación DDL. Consulte Referencia de API de SDK de Dotnet de Oracle NoSQL para obtener más información sobre estos métodos.

Descargue el código completo AlterTable.cs de los ejemplos aquí.
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);
}