Modificación de Tablas Singleton mediante API
Descubra cómo modificar una tabla única mediante las API.
- 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.
/**
* 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.
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
.
//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.
//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.
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);
}