En esta página, se describe cómo insertar, actualizar y borrar datos con la herramienta de línea de comandos de gcloud
.
Modifica datos con DML
Para ejecutar declaraciones de lenguaje de manipulación de datos (DML), usa el comando gcloud spanner databases execute-sql
. En el siguiente ejemplo, se agrega una fila nueva a la tabla Singers
.
gcloud spanner databases execute-sql example-db --instance=test-instance \ --sql="INSERT Singers (SingerId, FirstName, LastName) VALUES (1, 'Marc', 'Richards')"
Si deseas ejecutar una declaración DML particionada, usa el comando gcloud spanner databases execute-sql
con la opción --enable-partitioned-dml
. En el ejemplo siguiente, se actualizan las filas de la tabla Albums
.
gcloud spanner databases execute-sql example-db \ --instance=test-instance --enable-partitioned-dml \ --sql='UPDATE Albums SET MarketingBudget = 0 WHERE MarketingBudget IS NULL'
Si deseas consultar la referencia de DML de Spanner, consulta Sintaxis del lenguaje de manipulación de datos.
Modifica filas con el grupo de comandos de filas
Usa el grupo de comandos gcloud spanner rows
para modificar datos en una base de datos:
- Inserta filas nuevas en una tabla.
- Actualiza las columnas de las filas existentes en una tabla.
- Borra filas de una tabla.
El grupo de comandos rows
reconoce literales para todos los tipos de columnas válidos.
Inserta una fila en una tabla
Si deseas insertar una fila nueva en una tabla, debes incluir valores para las columnas de claves y cualquier otra columna obligatoria:
gcloud spanner rows insert --instance=INSTANCE_ID --database=DATABASE_ID \ --table=TABLE_NAME \ --data=COL_NAME_1=COL_VALUE_1,COL_NAME_2=COL_VALUE_2,COL_NAME_3=COL_VALUE_3,...,COL_NAME_N=COL_VALUE_N
En el siguiente ejemplo, se inserta una fila nueva en la tabla Singers
:
gcloud spanner rows insert --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,FirstName='Marc',LastName='Richards'
Actualiza una fila en una tabla
Si deseas actualizar una fila de una tabla, debes incluir valores para las columnas de claves y las columnas que deseas actualizar:
gcloud spanner rows update --instance=INSTANCE_ID --database=DATABASE_ID \ --table=TABLE_NAME \ --data=COL_NAME_1=COL_VALUE_1,COL_NAME_2=COL_VALUE_2,COL_NAME_3=COL_VALUE_3,...,COL_NAME_N=COL_VALUE_N
En el siguiente ejemplo, se actualiza una fila de la tabla Singers
:
gcloud spanner rows update --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,FirstName='Marc',LastName='Richards'
No puedes cambiar los valores de clave con el comando update
. Si deseas actualizar un valor de clave, debes crear una fila nueva y borrar la existente.
Borra una fila de una tabla
Si deseas borrar una fila, debes especificar los valores para las columnas de clave primaria:
gcloud spanner rows delete --instance=INSTANCE_ID --database=DATABASE_ID \ --table=TABLE_NAME \ --keys=KEY_VALUE_1,KEY_VALUE_2,KEY_VALUE_3
gcloud spanner rows delete --instance=test-instance --database=example-db \ --table=Singers \ --keys=1
Especifica valores de ARRAY
Si deseas insertar o actualizar valores en una columna ARRAY
, coloca los datos en un archivo YAML y usa la opción --flags-file
.
Por ejemplo, este archivo YAML especifica el arreglo [1,2,3]
para la columna Numbers
:
# stats.yaml
--data:
Id: 1
Locked: True
Numbers:
- 1
- 2
- 3
Para insertar una fila con los datos YAML, usa la opción --flags-file
:
gcloud spanner rows insert --instance=test-instance --database=example-db \ --table=Stats \ --flags-file stats.yaml
Para un arreglo NULL
, no incluyas un valor para Numbers
en el archivo:
# stats.yaml
--data:
Id: 1
Locked: True
Para un arreglo vacío, define el arreglo como []
:
# stats.yaml
--data:
Id: 1
Locked: True
Numbers: []
Especifica marcas de tiempo de confirmación
Para insertar o actualizar de manera automática un valor en una columna de marca de tiempo de confirmación, pasa spanner.commit_timestamp()
como el valor de la columna. En el siguiente ejemplo, se escribe la marca de tiempo de confirmación en la columna LastUpdated
cuando se inserta la fila.
gcloud spanner rows insert --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,LastUpdated='spanner.commit_timestamp()'
En el siguiente ejemplo, se escribe un valor de marca de tiempo específico en la columna LastUpdated
:
gcloud spanner rows update --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,LastUpdated=2017-01-02T12:34:00.45Z