Vista CONSTRAINT_COLUMN_USAGE

La vista CONSTRAINT_COLUMN_USAGE contiene todas las columnas que usan las restricciones. En el caso de las restricciones PRIMARY KEY, estas son las columnas de la vista KEY_COLUMN_USAGE. En el caso de las restricciones FOREIGN KEY, se trata de las columnas de las tablas a las que se hace referencia.

Esquema

La vista INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor

TABLE_CATALOG

STRING

Nombre del proyecto que contiene el conjunto de datos.

TABLE_SCHEMA

STRING

Nombre del conjunto de datos que contiene la tabla. También se denomina datasetId.

TABLE_NAME

STRING

Nombre de la tabla. También se denomina tableId.

COLUMN_NAME

STRING

Nombre de la columna.

CONSTRAINT_CATALOG

STRING

Nombre del proyecto de la restricción.

CONSTRAINT_SCHEMA

STRING

Nombre del conjunto de datos de la restricción.

CONSTRAINT_NAME

STRING

Nombre de la restricción. Puede ser el nombre de la clave principal si la columna la usa la clave principal o el nombre de la clave externa si la columna la usa una clave externa.

Ámbito y sintaxis

Las consultas en esta vista deben incluir un calificador de conjunto de datos. En el caso de las consultas con un calificador de conjunto de datos, debe tener permisos para el conjunto de datos. Para obtener más información, consulta la sección Sintaxis. En la siguiente tabla se muestran los ámbitos de región y de recurso de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; Nivel del conjunto de datos Ubicación del conjunto de datos
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.

Ejemplos

La siguiente consulta muestra las restricciones de una sola tabla de un conjunto de datos:

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE table_name = TABLE;

Haz los cambios siguientes:

  • PROJECT_ID: opcional. El nombre de tu proyecto de Cloud. Si no se especifica, este comando usa el proyecto predeterminado.
  • DATASET: el nombre de tu conjunto de datos.
  • TABLE: el nombre de la tabla.

Por el contrario, la siguiente consulta muestra las restricciones de todas las tablas de un solo conjunto de datos.

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

Con las restricciones actuales, los resultados de la consulta son similares a los siguientes:

+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
| row |    table_catalog    | table_schema | table_name | column_name | constraint_catalog  | constraint_schema |     constraint_name     |
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
|   1 | myConstraintCatalog | myDataset    | orders     | o_okey      | myConstraintCatalog | myDataset         | orders.pk$              |
|   2 | myConstraintCatalog | myDataset    | orders     | o_okey      | myConstraintCatalog | myDataset         | lineitem.lineitem_order |
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+

Si la tabla o el conjunto de datos no tienen restricciones, los resultados de la consulta serán los siguientes:

+-----------------------------+
| There is no data to display |
+-----------------------------+