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