Crea y administra bases de datos

En esta página, se describe cómo administrar una instancia base de datos, lo que incluye cómo crear una base de datos, modificar opciones de base de datos y borrar una base de datos. Si quieres aprender a actualizar un esquema de base de datos, consulta Realiza actualizaciones de esquema.

Para practicar cómo crear una base de datos y cargarla con datos de muestra, consulta la Tu primer codelab de base de datos.

Crea una base de datos

En los siguientes ejemplos, se muestra cómo crear una base de datos en una instancia existente.

Para las bases de datos del dialecto GoogleSQL, puedes definir la base de datos. esquema ya sea al momento de la creación de la base de datos o una vez creada la base de datos. Para las bases de datos de dialectos de PostgreSQL, debes hacer lo siguiente: definirás el esquema después de su creación.

Los esquemas se definen con el lenguaje de definición de la base de datos, que se documenta para GoogleSQL y PostgreSQL. Consulta los siguientes vínculos más información sobre la creación y actualización de esquemas:

Después de crear la base de datos, puedes proteger las bases de datos que son importantes a tus aplicaciones y servicios habilitando la protección contra la eliminación de bases de datos. Para Obtén más información en Cómo evitar la eliminación accidental de bases de datos.

Console

  1. Ve a la página Instancias en la consola de Google Cloud.

    Instancias

  2. Selecciona la instancia en la que deseas crear la base de datos.

  3. Haz clic en Crear base de datos.

  4. Ingresa los siguientes valores:

    • Un nombre de base de datos para mostrar en la consola de Google Cloud.
    • El dialecto que se usará para esta base de datos.
    • Para las bases de datos de dialectos de GoogleSQL, puedes proporcionar un conjunto de instrucciones DDL que definir tu esquema. Usa el Plantillas de DDL para completar previamente elementos comunes Si hay errores en tus declaraciones DDL, la consola de Google Cloud devuelve un error cuando cuando intentas crear la base de datos.
    • De manera opcional, selecciona una clave de encriptación administrada por el cliente para usar en esta base de datos.
  5. Haz clic en Crear para crear la base de datos.

gcloud

Usa el comando gcloud spanner databases create.

gcloud spanner databases create DATABASE \
  --instance=INSTANCE \
  [--async] \
  [--database-dialect=DATABASE_DIALECT] \
  [--ddl=DDL] \
  [--ddl-file=DDL_FILE] \
  [--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
  [GCLOUD_WIDE_FLAG …]

Se requieren las siguientes opciones:

DATABASE
ID de la base de datos o identificador completamente calificado de la en la base de datos. Si se especifica el identificador completamente calificado, el Se puede omitir la marca --instance.
--instance=INSTANCE
La instancia de Spanner para la base de datos.

Las siguientes configuraciones son opcionales:

--async
Regresa de inmediato, sin esperar a que la operación esté en curso. en completarse.
--database-dialect=DATABASE_DIALECT
Es el dialecto de SQL de la base de datos de Spanner. Debe ser uno de los siguientes: POSTGRESQL o GOOGLE_STANDARD_SQL.
--ddl=DDL
Declaraciones de DDL (lenguaje de definición de datos) separadas por punto y coma que se ejecutarán dentro de la base de datos recién creada. Si hay un error en algún , la base de datos no se crea. Esta marca se ignora si Se estableció --ddl_file. No es compatible con las bases de datos de dialectos de PostgreSQL.
--ddl-file=DDL_FILE
Ruta de acceso de un archivo que contiene elementos separados por punto y coma las instrucciones de DDL (lenguaje de definición de datos) que se ejecutarán en la base de datos creada. Si hay un error en alguna instrucción, entonces la base de datos es no se creó. Si se establece --ddl_file, se aplicará --ddl ignorados. No es compatible con las bases de datos de dialectos de PostgreSQL.

Si especificas una clave de Cloud Key Management Service cuando crees la base de datos, incluye las siguientes opciones:

--kms-key=KMS_KEY
Es el ID de la clave o el identificador completamente calificado de la clave.

Esta marca debe especificarse si alguno de los otros argumentos de un grupo de instancias administrado. Los demás argumentos se pueden omitir si el de que se proporcione un identificador completamente calificado.

--kms-keyring=KMS_KEYRING
Es el ID del llavero de claves de Cloud KMS de la clave.
--kms-location=KMS_LOCATION
Ubicación de Google Cloud de la clave.
--kms-project=KMS_PROJECT
ID del proyecto de Google Cloud para la clave.

Cliente (GoogleSQL)

C++

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

void CreateDatabase(google::cloud::spanner_admin::DatabaseAdminClient client,
                    std::string const& project_id,
                    std::string const& instance_id,
                    std::string const& database_id) {
  google::cloud::spanner::Database database(project_id, instance_id,
                                            database_id);
  google::spanner::admin::database::v1::CreateDatabaseRequest request;
  request.set_parent(database.instance().FullName());
  request.set_create_statement("CREATE DATABASE `" + database.database_id() +
                               "`");
  request.add_extra_statements(R"""(
      CREATE TABLE Singers (
          SingerId   INT64 NOT NULL,
          FirstName  STRING(1024),
          LastName   STRING(1024),
          SingerInfo BYTES(MAX),
          FullName   STRING(2049)
              AS (ARRAY_TO_STRING([FirstName, LastName], " ")) STORED
      ) PRIMARY KEY (SingerId))""");
  request.add_extra_statements(R"""(
      CREATE TABLE Albums (
          SingerId     INT64 NOT NULL,
          AlbumId      INT64 NOT NULL,
          AlbumTitle   STRING(MAX)
      ) PRIMARY KEY (SingerId, AlbumId),
          INTERLEAVE IN PARENT Singers ON DELETE CASCADE)""");
  auto db = client.CreateDatabase(request).get();
  if (!db) throw std::move(db).status();
  std::cout << "Database " << db->name() << " created.\n";
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"
	"regexp"

	database "cloud.google.com/go/spanner/admin/database/apiv1"
	adminpb "google.golang.org/genproto/googleapis/spanner/admin/database/v1"
)

func createDatabase(ctx context.Context, w io.Writer, db string) error {
	matches := regexp.MustCompile("^(.*)/databases/(.*)$").FindStringSubmatch(db)
	if matches == nil || len(matches) != 3 {
		return fmt.Errorf("Invalid database id %s", db)
	}

	adminClient, err := database.NewDatabaseAdminClient(ctx)
	if err != nil {
		return err
	}
	defer adminClient.Close()

	op, err := adminClient.CreateDatabase(ctx, &adminpb.CreateDatabaseRequest{
		Parent:          matches[1],
		CreateStatement: "CREATE DATABASE `" + matches[2] + "`",
		ExtraStatements: []string{
			`CREATE TABLE Singers (
				SingerId   INT64 NOT NULL,
				FirstName  STRING(1024),
				LastName   STRING(1024),
				SingerInfo BYTES(MAX),
				FullName   STRING(2048) AS (
					ARRAY_TO_STRING([FirstName, LastName], " ")
				) STORED
			) PRIMARY KEY (SingerId)`,
			`CREATE TABLE Albums (
				SingerId     INT64 NOT NULL,
				AlbumId      INT64 NOT NULL,
				AlbumTitle   STRING(MAX)
			) PRIMARY KEY (SingerId, AlbumId),
			INTERLEAVE IN PARENT Singers ON DELETE CASCADE`,
		},
	})
	if err != nil {
		return err
	}
	if _, err := op.Wait(ctx); err != nil {
		return err
	}
	fmt.Fprintf(w, "Created database [%s]\n", db)
	return nil
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.SpannerExceptionFactory;
import com.google.cloud.spanner.admin.database.v1.DatabaseAdminClient;
import com.google.common.collect.ImmutableList;
import com.google.spanner.admin.database.v1.CreateDatabaseRequest;
import com.google.spanner.admin.database.v1.Database;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class CreateDatabaseWithDefaultLeaderSample {

  static void createDatabaseWithDefaultLeader() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String instanceName = "projects/my-project/instances/my-instance-id";
    final String databaseId = "my-database-name";
    final String defaultLeader = "my-default-leader";
    createDatabaseWithDefaultLeader(instanceName, databaseId, defaultLeader);
  }

  static void createDatabaseWithDefaultLeader(String instanceName, String databaseId,
      String defaultLeader) throws IOException {
    try (DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.create()) {
      Database createdDatabase =
          databaseAdminClient.createDatabaseAsync(
              CreateDatabaseRequest.newBuilder()
                  .setParent(instanceName)
                  .setCreateStatement("CREATE DATABASE `" + databaseId + "`")
                  .addAllExtraStatements(
                      ImmutableList.of("CREATE TABLE Singers ("
                              + "  SingerId   INT64 NOT NULL,"
                              + "  FirstName  STRING(1024),"
                              + "  LastName   STRING(1024),"
                              + "  SingerInfo BYTES(MAX)"
                              + ") PRIMARY KEY (SingerId)",
                          "CREATE TABLE Albums ("
                              + "  SingerId     INT64 NOT NULL,"
                              + "  AlbumId      INT64 NOT NULL,"
                              + "  AlbumTitle   STRING(MAX)"
                              + ") PRIMARY KEY (SingerId, AlbumId),"
                              + "  INTERLEAVE IN PARENT Singers ON DELETE CASCADE",
                          "ALTER DATABASE " + "`" + databaseId + "`"
                              + " SET OPTIONS ( default_leader = '" + defaultLeader + "' )"))
                  .build()).get();
      System.out.println("Created database [" + createdDatabase.getName() + "]");
      System.out.println("\tDefault leader: " + createdDatabase.getDefaultLeader());
    } catch (ExecutionException e) {
      // If the operation failed during execution, expose the cause.
      throw (SpannerException) e.getCause();
    } catch (InterruptedException e) {
      // Throw when a thread is waiting, sleeping, or otherwise occupied,
      // and the thread is interrupted, either before or during the activity.
      throw SpannerExceptionFactory.propagateInterrupt(e);
    }
  }
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = 'my-project-id';
// const instanceId = 'my-instance-id';
// const databaseId = 'my-database-id';
// const defaultLeader = 'my-default-leader'; example: 'asia-northeast1'

// Imports the Google Cloud client library
const {Spanner} = require('@google-cloud/spanner');

// creates a client
const spanner = new Spanner({
  projectId: projectId,
});

// Gets a reference to a Cloud Spanner Database Admin Client object
const databaseAdminClient = spanner.getDatabaseAdminClient();

async function createDatabaseWithDefaultLeader() {
  // Create a new database with an extra statement which will alter the
  // database after creation to set the default leader.
  console.log(
    `Creating database ${databaseAdminClient.databasePath(
      projectId,
      instanceId,
      databaseId
    )}.`
  );
  const createSingersTableStatement = `
    CREATE TABLE Singers (
      SingerId   INT64 NOT NULL,
      FirstName  STRING(1024),
      LastName   STRING(1024),
      SingerInfo BYTES(MAX)
    ) PRIMARY KEY (SingerId)`;
  const createAlbumsStatement = `
    CREATE TABLE Albums (
      SingerId     INT64 NOT NULL,
      AlbumId      INT64 NOT NULL,
      AlbumTitle   STRING(MAX)
    ) PRIMARY KEY (SingerId, AlbumId),
      INTERLEAVE IN PARENT Singers ON DELETE CASCADE`;

  // Default leader is one of the possible values in the leaderOptions field of the
  // instance config of the instance where the database is created.
  const setDefaultLeaderStatement = `
    ALTER DATABASE \`${databaseId}\`
    SET OPTIONS (default_leader = '${defaultLeader}')`;

  const [operation] = await databaseAdminClient.createDatabase({
    createStatement: 'CREATE DATABASE `' + databaseId + '`',
    extraStatements: [
      createSingersTableStatement,
      createAlbumsStatement,
      setDefaultLeaderStatement,
    ],
    parent: databaseAdminClient.instancePath(projectId, instanceId),
  });

  console.log(`Waiting for creation of ${databaseId} to complete...`);
  await operation.promise();
  console.log(
    `Created database ${databaseId} with default leader ${defaultLeader}.`
  );
}
createDatabaseWithDefaultLeader();

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

use Google\Cloud\Spanner\Admin\Database\V1\Client\DatabaseAdminClient;
use Google\Cloud\Spanner\Admin\Database\V1\CreateDatabaseRequest;

/**
 * Creates a database and tables for sample data.
 * Example:
 * ```
 * create_database($instanceId, $databaseId);
 * ```
 *
 * @param string $projectId The Google Cloud project ID.
 * @param string $instanceId The Spanner instance ID.
 * @param string $databaseId The Spanner database ID.
 */
function create_database(string $projectId, string $instanceId, string $databaseId): void
{
    $databaseAdminClient = new DatabaseAdminClient();
    $instance = $databaseAdminClient->instanceName($projectId, $instanceId);

    $operation = $databaseAdminClient->createDatabase(
        new CreateDatabaseRequest([
            'parent' => $instance,
            'create_statement' => sprintf('CREATE DATABASE `%s`', $databaseId),
            'extra_statements' => [
                'CREATE TABLE Singers (' .
                'SingerId     INT64 NOT NULL,' .
                'FirstName    STRING(1024),' .
                'LastName     STRING(1024),' .
                'SingerInfo   BYTES(MAX),' .
                'FullName     STRING(2048) AS' .
                '(ARRAY_TO_STRING([FirstName, LastName], " ")) STORED' .
                ') PRIMARY KEY (SingerId)',
                'CREATE TABLE Albums (' .
                    'SingerId     INT64 NOT NULL,' .
                    'AlbumId      INT64 NOT NULL,' .
                    'AlbumTitle   STRING(MAX)' .
                ') PRIMARY KEY (SingerId, AlbumId),' .
                'INTERLEAVE IN PARENT Singers ON DELETE CASCADE'
            ]
        ])
    );

    print('Waiting for operation to complete...' . PHP_EOL);
    $operation->pollUntilComplete();

    printf('Created database %s on instance %s' . PHP_EOL,
        $databaseId, $instanceId);
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

def create_database(instance_id, database_id):
    """Creates a database and tables for sample data."""
    from google.cloud.spanner_admin_database_v1.types import \
        spanner_database_admin

    spanner_client = spanner.Client()
    database_admin_api = spanner_client.database_admin_api

    request = spanner_database_admin.CreateDatabaseRequest(
        parent=database_admin_api.instance_path(spanner_client.project, instance_id),
        create_statement=f"CREATE DATABASE `{database_id}`",
        extra_statements=[
            """CREATE TABLE Singers (
            SingerId     INT64 NOT NULL,
            FirstName    STRING(1024),
            LastName     STRING(1024),
            SingerInfo   BYTES(MAX),
            FullName   STRING(2048) AS (
                ARRAY_TO_STRING([FirstName, LastName], " ")
            ) STORED
        ) PRIMARY KEY (SingerId)""",
            """CREATE TABLE Albums (
            SingerId     INT64 NOT NULL,
            AlbumId      INT64 NOT NULL,
            AlbumTitle   STRING(MAX)
        ) PRIMARY KEY (SingerId, AlbumId),
        INTERLEAVE IN PARENT Singers ON DELETE CASCADE""",
        ],
    )

    operation = database_admin_api.create_database(request=request)

    print("Waiting for operation to complete...")
    database = operation.result(OPERATION_TIMEOUT_SECONDS)

    print(
        "Created database {} on instance {}".format(
            database.name,
            database_admin_api.instance_path(spanner_client.project, instance_id),
        )
    )

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.

Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

# project_id  = "Your Google Cloud project ID"
# instance_id = "Your Spanner instance ID"
# database_id = "Your Spanner database ID"

require "google/cloud/spanner"
require "google/cloud/spanner/admin/database"

database_admin_client = Google::Cloud::Spanner::Admin::Database.database_admin

instance_path = database_admin_client.instance_path project: project_id, instance: instance_id

job = database_admin_client.create_database parent: instance_path,
                                            create_statement: "CREATE DATABASE `#{database_id}`",
                                            extra_statements: [
                                              "CREATE TABLE Singers (
      SingerId     INT64 NOT NULL,
      FirstName    STRING(1024),
      LastName     STRING(1024),
      SingerInfo   BYTES(MAX)
    ) PRIMARY KEY (SingerId)",

                                              "CREATE TABLE Albums (
      SingerId     INT64 NOT NULL,
      AlbumId      INT64 NOT NULL,
      AlbumTitle   STRING(MAX)
    ) PRIMARY KEY (SingerId, AlbumId),
    INTERLEAVE IN PARENT Singers ON DELETE CASCADE"
                                            ]

puts "Waiting for create database operation to complete"

job.wait_until_done!

puts "Created database #{database_id} on instance #{instance_id}"

Actualiza el esquema o las opciones de la base de datos

Puedes actualizar el esquema y las opciones de tu base de datos mediante declaraciones DDL.

Por ejemplo, para agregar una columna a una tabla, usa la siguiente declaración DDL:

GoogleSQL

ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);

PostgreSQL

ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);

Para actualizar la versión del optimizador de consultas, usa la siguiente declaración DDL:

GoogleSQL

ALTER DATABASE Music SET OPTIONS(optimizer_version=null);

PostgreSQL

ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;

Para obtener más información sobre las opciones compatibles, consulta el DDL de ALTER DATABASE. para GoogleSQL o PostgreSQL.

Para obtener información sobre las actualizaciones de esquema, consulta Realiza actualizaciones del esquema.

Console

  1. Ve a la página Instancias en la consola de Google Cloud.

    Instancias

  2. Selecciona la instancia que contiene la base de datos que deseas modificar.

  3. Selecciona la base de datos.

  4. Haz clic en Spanner Studio.

  5. Haz clic en Nueva pestaña o usa el botón Editor. Luego, ingresa las instrucciones de DDL que deseas aplicar.

  6. Haz clic en Ejecutar para aplicar las actualizaciones. Si hay errores en tu DDL, la consola de Google Cloud devuelve un error y la base de datos no alterados.

gcloud

Para modificar una base de datos con la herramienta de línea de comandos de gcloud, usa gcloud spanner databases ddl update

gcloud spanner databases ddl update \
(DATABASE : --instance=INSTANCE) \
[--async] \
[--ddl=DDL] \
[--ddl-file=DDL_FILE] \

Consulta las Referencia de gcloud para detalles sobre las opciones disponibles.

Pasa las actualizaciones de la base de datos al comando con la marca --ddl o --ddl-file. Si se especifica un archivo DDL, se ignora la marca --ddl.

Consulta la referencia del DDL de ALTER DATABASE. para GoogleSQL o Usa PostgreSQL para que se incluyan las instrucciones de DDL.

DDL

Consulta la referencia del DDL de ALTER DATABASE. para GoogleSQL o PostgreSQL para obtener más detalles.

Comprueba el progreso de las operaciones de actualización del esquema

Console

  1. En el menú de navegación de Spanner, selecciona la pestaña Operaciones. El En la página Operaciones, se muestra una lista de las operaciones que se están ejecutando.

  2. Busca la operación del esquema en la lista. Si todavía está activo, el progreso de la columna Hora de finalización muestra el porcentaje de la operación que esté completo, como se muestra en la siguiente imagen:

Captura de pantalla de la barra de progreso que muestra el 98%

gcloud

Usa gcloud spanner operations describe. para verificar el progreso de una operación.

  1. Obtén el ID de operación:

    gcloud spanner operations list --instance=INSTANCE-NAME \
    --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
    

    Reemplaza lo siguiente:

    • INSTANCE-NAME por la instancia de Spanner de la fuente de datos.
    • DATABASE-NAME por el nombre de la base de datos
  2. Ejecuta gcloud spanner operations describe:

    gcloud spanner operations describe OPERATION_ID\
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME
    

    Reemplaza lo siguiente:

    • OPERATION-ID: Es el ID de la operación que deseas. de verificación.
    • INSTANCE-NAME: Es el nombre de la instancia de Spanner.
    • DATABASE-NAME: Es el nombre de la base de datos de Spanner.

    En la sección progress del resultado, se muestra el porcentaje de la operación. que está completo. El resultado es similar al siguiente:

    done: true
    metadata:
    ...
      progress:
      - endTime: '2022-03-01T00:28:06.691403Z'
        progressPercent: 100
        startTime: '2022-03-01T00:28:04.221401Z'
      - endTime: '2022-03-01T00:28:17.624588Z'
        startTime: '2022-03-01T00:28:06.691403Z'
        progressPercent: 100
    ...
    

REST v1

  1. Obtén el ID de operación:

    gcloud spanner operations list --instance=INSTANCE-NAME \
    --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
    

    Reemplaza lo siguiente:

    • INSTANCE-NAME por la instancia de Spanner de la fuente de datos.
    • DATABASE-NAME por el nombre de la base de datos
  2. Verifica el progreso de la operación.

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT-ID: El ID del proyecto.
    • INSTANCE-ID: El ID de la instancia.
    • DATABASE-ID: Es el ID de la base de datos.
    • OPERATION-ID: Es el ID de la operación.

    Método HTTP y URL:

    GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {
    ...
        "progress": [
          {
            "progressPercent": 100,
            "startTime": "2023-05-27T00:52:27.366688Z",
            "endTime": "2023-05-27T00:52:30.184845Z"
          },
          {
            "progressPercent": 100,
            "startTime": "2023-05-27T00:52:30.184845Z",
            "endTime": "2023-05-27T00:52:40.750959Z"
          }
        ],
    ...
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.protobuf.Empty"
      }
    }
    
    

Si la operación tarda demasiado, puedes cancelarla. Para obtener más información, consulta Cancela una operación de base de datos de larga duración.

Borrar una base de datos

Si borras una base de datos, esta y todos sus datos se quitarán de forma permanente. Base de datos la eliminación no se puede deshacer. Si la protección contra la eliminación de bases de datos está habilitada en una base de datos, no puedes eliminarla hasta que inhabilites su protección contra la eliminación.

Las copias de seguridad existentes no se borran cuando se borra una base de datos. Para ver más consulta Copia de seguridad y restablecimiento.

Console

  1. Ve a la página Instancias en la consola de Google Cloud.

    Instancias

  2. Selecciona la instancia que contiene la base de datos que deseas borrar.

  3. Selecciona la base de datos.

  4. Haz clic en Borrar base de datos. Aparecerá una confirmación.

  5. Escribe el nombre de la base de datos y haz clic en Borrar.

gcloud

Para borrar una base de datos con la herramienta de línea de comandos de gcloud, usa gcloud spanner databases delete

gcloud spanner databases delete \
  (DATABASE : --instance=INSTANCE)

Se requieren las siguientes opciones:

DATABASE
Es el ID de la base de datos o el identificador completamente calificado de la base de datos. Si se proporciona el identificador completamente calificado, el --instance la marca de verificación.
--instance=INSTANCE
La instancia de Spanner para la base de datos.

Para obtener más información, consulta la Referencia de gcloud.

DDL

DDL no admite la sintaxis de eliminación de bases de datos.

¿Qué sigue?