外部キー
このセクションでは、ForeignKeys スキーマコレクションを取得することで外部キーに関する情報にアクセスする方法について説明します。
外部キー情報の取得
ForeignKeys スキーマコレクションを取得するには、ApachePhoenixConnection クラスのGetSchema メソッドを呼び出します。外部キー情報は、カタログ、スキーマ、あるいはテーブル名に基づいて制限できます。
返されたDataTable の結果にアクセスします。次の例は、[SampleCatalog_1].[SampleSchema_1].SampleTable_1 テーブルの外部キーをリストします。
C#
String connectionString = "URL=http://localhost:8765;";
using (ApachePhoenixConnection conn = new ApachePhoenixConnection(connectionString)) {
conn.Open();
DataTable databaseSchema = conn.GetSchema("ForeignKeys", new string[] {"SampleCatalog_1","SampleSchema_1","SampleTable_1"});
foreach (DataRow row in databaseSchema.Rows) {
Console.WriteLine(row["CONSTRAINT_NAME"]);
Console.WriteLine(row["TABLE_NAME"]);
}
}
VB.NET
Dim connectionString As String = "URL=http://localhost:8765;"
Using conn As New ApachePhoenixConnection(connectionString)
conn.Open()
Dim databaseSchema As DataTable = conn.GetSchema("ForeignKeys", New String() {"SampleCatalog_1","SampleSchema_1","SampleTable_1")
For Each row As DataRow In databaseSchema.Rows
Console.WriteLine(row("CONSTRAINT_NAME"))
Console.WriteLine(row("TABLE_NAME"))
Next
End Using
返されたカラム
ForeignKeys スキーマコレクションは、Apache Phoenix の外部キーに関する次の情報を返します。
| カラム名 | データ型 | 説明 |
| 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。 |