Tampilan KEY_COLUMN_USAGE

Tampilan KEY_COLUMN_USAGE berisi kolom tabel dari TABLE_CONSTRAINTS yang dibatasi sebagai kunci oleh batasan PRIMARY KEY dan FOREIGN KEY.

Skema

Tampilan INFORMATION_SCHEMA.KEY_COLUMN_USAGE memiliki skema berikut:

Nama Kolom Jenis Data Nilai

CONSTRAINT_CATALOG

STRING

Nama project batasan.

CONSTRAINT_SCHEMA

STRING

Nama set data batasan.

CONSTRAINT_NAME

STRING

Nama batasan.

TABLE_CATALOG

STRING

Nama project tabel yang dibatasi.

TABLE_SCHEMA

STRING

Nama set data tabel yang dibatasi.

TABLE_NAME

STRING

Nama tabel yang dibatasi.

COLUMN_NAME

STRING

Nama kolom yang dibatasi.

ORDINAL_POSITION

INT64

Posisi ordinal kolom dalam kunci batasan (mulai dari 1).

POSITION_IN_UNIQUE_CONSTRAINT

INT64

Untuk kunci asing, posisi ordinal kolom dalam batasan kunci utama (mulai dari 1). Nilai ini berupa NULL untuk batasan kunci utama.

Cakupan dan sintaksis

Kueri terhadap tampilan ini harus menyertakan penentu set data. Untuk kueri dengan penentu set data, Anda harus memiliki izin untuk set data. Untuk informasi selengkapnya, lihat Sintaksis. Tabel berikut menampilkan cakupan region dan resource untuk tampilan ini:

Nama tampilan Cakupan resource Cakupan region
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.KEY_COLUMN_USAGE; Level set data Lokasi set data
Ganti kode berikut:

  • Opsional: PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.

Untuk kueri dengan penentu set data, Anda harus memiliki izin untuk set data. Untuk kueri dengan penentu region, Anda harus memiliki izin untuk project.

Contoh

Contoh 1:

Kueri berikut menunjukkan batasan untuk satu tabel dalam set data:

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

Ganti kode berikut:

  • PROJECT_ID: Opsional. Nama project cloud Anda. Jika tidak ditentukan, perintah ini akan menggunakan project default.
  • DATASET: Nama set data Anda.
  • TABLE: Nama tabel.

Sebaliknya, kueri berikut menunjukkan penggunaan kolom kunci untuk semua tabel dalam satu set data.

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_COLUMN_USAGE;

Jika tabel atau set data tidak memiliki batasan, hasil kueri akan terlihat seperti ini:

+-----------------------------+
| There is no data to display |
+-----------------------------+
Contoh 2:

Pernyataan DDL berikut membuat tabel kunci utama dan tabel kunci asing.

CREATE TABLE composite_pk (x int64, y string, primary key (x, y) NOT ENFORCED);
CREATE TABLE table composite_fk (x int64, y string, z string,  primary key (x, y)
NOT ENFORCED, CONSTRAINT composite_fk foreign key (z, x)
REFERENCES composite_pk (y, x) NOT ENFORCED);

Jika dikueri dengan pernyataan dalam Contoh 1, hasil kuerinya akan mirip dengan berikut ini. Perhatikan bahwa kolom CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, dan duplikat tidak disertakan dalam hasil contoh.

+---------------------------+--------------+-------------+------------------+-------------------------------+
|     CONSTRAINT_NAME       |  TABLE_NAME  | COLUMN_NAME | ORDINAL_POSITION | POSITION_IN_UNIQUE_CONSTRAINT |
+---------------------------+--------------+-------------+------------------+-------------------------------+
| composite_pk.pk$          | composite_pk | x           | 1                | NULL                          |
| composite_pk.pk$          | composite_pk | y           | 2                | NULL                          |
| composite_fk.pk$          | composite_fk | x           | 1                | NULL                          |
| composite_fk.pk$          | composite_fk | y           | 2                | NULL                          |
| composite_fk.composite_fk | composite_fk | z           | 1                | 2                             |
| composite_fk.composite_fk | composite_fk | x           | 2                | 1                             |
+---------------------------+--------------+-------------+------------------+-------------------------------+