外部キー
このセクションでは、ForeignKeys スキーマコレクションを取得することで外部キーに関する情報にアクセスする方法について説明します。
外部キー情報の取得
ForeignKeys スキーマコレクションを取得するには、SnowflakeConnection クラスのGetSchema メソッドを呼び出します。外部キー情報は、カタログ、スキーマ、あるいはテーブル名に基づいて制限できます。
返されたDataTable の結果にアクセスします。次の例は、[DemoDB].[PUBLIC].Products テーブルの外部キーをリストします。
C#
String connectionString = "url=https://myaccount.region.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;"; using (SnowflakeConnection conn = new SnowflakeConnection(connectionString)) { conn.Open(); DataTable databaseSchema = conn.GetSchema("ForeignKeys", new string[] {"DemoDB","PUBLIC","Products"}); foreach (DataRow row in databaseSchema.Rows) { Console.WriteLine(row["CONSTRAINT_NAME"]); Console.WriteLine(row["TABLE_NAME"]); } }
VB.NET
Dim connectionString As String = "url=https://myaccount.region.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;" Using conn As New SnowflakeConnection(connectionString) conn.Open() Dim databaseSchema As DataTable = conn.GetSchema("ForeignKeys", New String() {"DemoDB","PUBLIC","Products") For Each row As DataRow In databaseSchema.Rows Console.WriteLine(row("CONSTRAINT_NAME")) Console.WriteLine(row("TABLE_NAME")) Next End Using
返されたカラム
ForeignKeys スキーマコレクションは、Snowflake の外部キーに関する次の情報を返します。
カラム名 | データ型 | 説明 |
CONSTRAINT_CATALOG | System.String | 外部キーを含むデータベース。 |
CONSTRAINT_SCHEMA | System.String | 外部キーを含むスキーマ。 |
CONSTRAINT_NAME | System.String | 外部キーの名前。 |
CONSTRAINT_TYPE | System.String | FOREIGN KEY を返す。 |
TABLE_CATALOG | System.String | 外部キーを含むテーブルのデータベース。 |
TABLE_SCHEMA | System.String | 外部キーを含むテーブルのスキーマ。 |
TABLE_NAME | System.String | 外部キーを含むテーブルの名前。 |
IS_DEFERRABLE | System.String | 外部キーが遅延可能であるかどうか。値はYES またはNO。 |
INITIALLY_DEFERRED | System.String | 外部キーが初期状態で遅延可能であるかどうか。値はYES またはNO。 |