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 |
---|---|---|
|
|
Nama project batasan. |
|
|
Nama set data batasan. |
|
|
Nama batasan. |
|
|
Nama project tabel yang dibatasi. |
|
|
Nama set data tabel yang dibatasi. |
|
|
Nama tabel yang dibatasi. |
|
|
Nama kolom yang dibatasi. |
|
|
Posisi ordinal kolom dalam kunci batasan (mulai dari 1). |
|
|
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 |
- 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 | +---------------------------+--------------+-------------+------------------+-------------------------------+