Tampilan TABLE_CONSTRAINTS

Tampilan TABLE_CONSTRAINTS berisi hubungan kunci utama dan kunci asing dalam set data BigQuery.

Izin yang diperlukan

Anda memerlukan izin Identity and Access Management (IAM) berikut:

  • bigquery.tables.get untuk melihat definisi kunci utama dan asing.
  • bigquery.tables.list untuk melihat skema informasi tabel.

Setiap peran yang telah ditetapkan berikut memiliki izin yang diperlukan untuk menjalankan alur kerja yang dijelaskan dalam dokumen ini:

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Peran dan izin yang telah ditetapkan.

Skema

Tampilan INFORMATION_SCHEMA.TABLE_CONSTRAINTS memiliki skema berikut:

Nama Kolom Jenis Arti

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.

CONSTRAINT_TYPE

STRING

PRIMARY KEY atau FOREIGN KEY

IS_DEFERRABLE

STRING

YES atau NO bergantung pada apakah batasan dapat ditangguhkan. Hanya NO yang didukung.

INITIALLY_DEFERRED

STRING

Hanya NO yang didukung.

ENFORCED

STRING

YES atau NO bergantung pada apakah batasan diterapkan.
Hanya NO yang didukung.

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.TABLE_CONSTRAINTS; Level set data Lokasi set data
Ganti kode berikut:

  • 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.TABLE_CONSTRAINTS
    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.TABLE_CONSTRAINTS;

    Dengan batasan yang ada, hasil kuerinya mirip dengan berikut ini:

    +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+
    | Row | constraint_catalog  | constraint_schema |    constraint_name    |    table_catalog    | table_schema | table_name | constraint_type | is_deferrable | initially_deferred | enforced |
    +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+
    |   1 | myConstraintCatalog | myDataset         | orders.pk$            | myConstraintCatalog | myDataset    | orders     | PRIMARY KEY     | NO            | NO                 | NO       |
    |   2 | myConstraintCatalog | myDataset         | orders.order_customer | myConstraintCatalog | myDataset    | orders     | FOREIGN KEY     | NO            | NO                 | NO       |
    +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+
    

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

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