התצוגה CONSTRAINT_COLUMN_USAGE
התצוגה CONSTRAINT_COLUMN_USAGE מכילה את כל העמודות שמשמשות אילוצים.
במקרה של אילוצי PRIMARY KEY, אלה העמודות מהתצוגה KEY_COLUMN_USAGE. במגבלות FOREIGN KEY, אלה העמודות של הטבלאות שההפניה היא אליהן.
סכימה
לתצוגה INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE יש את הסכימה הבאה:
| שם עמודה | סוג נתונים | ערך |
|---|---|---|
|
|
שם הפרויקט שמכיל את מערך הנתונים. |
|
|
שם מערך הנתונים שמכיל את הטבלה. נקרא גם datasetId. |
|
|
שם הטבלה. נקרא גם tableId. |
|
|
שם העמודה. |
|
|
שם הפרויקט של האילוץ. |
|
|
שם קבוצת הנתונים של האילוץ. |
|
|
שם האילוץ. יכול להיות שזה השם של המפתח הראשי אם העמודה משמשת את המפתח הראשי, או השם של המפתח הזר אם העמודה משמשת את המפתח הזר. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו חייבות לכלול מסנן של מערך נתונים. כדי להריץ שאילתות עם מסווג של מערך נתונים, צריכות להיות לכם הרשאות למערך הנתונים. מידע נוסף מופיע במאמר בנושא תחביר. בטבלה הבאה מוצגים היקפי האזור והמשאבים של התצוגה הזו:
| שם התצוגה | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; |
רמת מערך הנתונים | מיקום מערך הנתונים |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
דוגמאות
השאילתה הבאה מציגה את האילוצים של טבלה אחת במערך נתונים:
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE table_name = TABLE;
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: אופציונלי. השם של הפרויקט בענן. אם לא מציינים פרויקט, הפקודה הזו משתמשת בפרויקט ברירת המחדל. -
DATASET: השם של מערך הנתונים. -
TABLE: שם הטבלה.
לעומת זאת, השאילתה הבאה מציגה את האילוצים של כל הטבלאות במערך נתונים יחיד.
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;
עם אילוצים קיימים, תוצאות השאילתה דומות לתוצאות הבאות:
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+ | 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 | +-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
אם אין אילוצים בטבלה או במערך הנתונים, תוצאות השאילתה ייראו כך:
+-----------------------------+ | There is no data to display | +-----------------------------+