Tampilan CONSTRAINT_COLUMN_USAGE
Tampilan CONSTRAINT_COLUMN_USAGE berisi semua kolom yang digunakan oleh
batasan.
Untuk batasan PRIMARY KEY, ini adalah kolom dari
tampilan KEY_COLUMN_USAGE. Untuk batasan FOREIGN KEY, ini adalah kolom
tabel yang direferensikan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, minta administrator untuk memberi Anda peran IAM BigQuery Data Editor (roles/bigquery.dataEditor) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi
izin yang diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE. Untuk melihat izin yang pasti diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE:
-
Melihat definisi kunci utama dan kunci asing:
bigquery.tables.get -
Melihat skema informasi tabel:
bigquery.tables.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Peran dan izin bawaan.
Skema
Tampilan INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE memiliki skema berikut:
| Nama Kolom | Jenis data | Nilai |
|---|---|---|
|
|
Nama project yang berisi set data. |
|
|
Nama set data yang berisi tabel. Juga
disebut sebagai datasetId. |
|
|
Nama tabel. Juga disebut sebagai
tableId. |
|
|
Nama kolom. |
|
|
Nama project batasan. |
|
|
Nama set data batasan. |
|
|
Nama batasan. Nama ini dapat berupa nama kunci utama jika kolom digunakan oleh kunci utama atau nama kunci asing jika kolom digunakan oleh kunci asing. |
Untuk stabilitas, sebaiknya Anda mencantumkan kolom secara eksplisit dalam kueri skema informasi, bukan menggunakan karakter pengganti (SELECT *). Mencantumkan kolom secara eksplisit akan mencegah kueri rusak jika skema yang mendasarinya berubah.
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 mengetahui informasi selengkapnya, lihat Sintaksis. Tabel berikut menampilkan cakupan region dan resource untuk tampilan ini:
| Nama tampilan | Cakupan resource | Cakupan region |
|---|---|---|
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; |
Level set data | Lokasi set data |
-
Opsional:
PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.
Contoh
Kueri berikut menunjukkan batasan untuk satu tabel dalam set data:
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_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 menampilkan batasan untuk semua tabel dalam satu set data.
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;
Dengan batasan yang ada, hasil kuerinya mirip dengan berikut ini:
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+ | 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 | +-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
Jika tabel atau set data tidak memiliki batasan, hasil kueri akan terlihat seperti ini:
+-----------------------------+ | There is no data to display | +-----------------------------+