Foreign Keys
This section describes how to access information about foreign keys by retrieving the ForeignKeys schema collection.
Retrieving Foreign Key Information
To retrieve the ForeignKeys schema collection, call the GetSchema method of the ApachePhoenixConnection class. You can restrict foreign key information by the catalog, schema, or table name.
Access the results in the DataTable returned. The following example lists the foreign keys for the [SampleCatalog_1].[SampleSchema_1].SampleTable_1 table.
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
Columns Returned
The ForeignKeys schema collection returns the following information about the foreign keys in Apache Phoenix.
Column Name | Data Type | Description |
CONSTRAINT_CATALOG | System.String | The database containing the foreign key. |
CONSTRAINT_SCHEMA | System.String | The schema containing the foreign key. |
CONSTRAINT_NAME | System.String | The name of the foreign key. |
CONSTRAINT_TYPE | System.String | Returns FOREIGN KEY. |
TABLE_CATALOG | System.String | The database of the table containing the foreign key. |
TABLE_SCHEMA | System.String | The schema of the table containing the foreign key. |
TABLE_NAME | System.String | The name of the table containing the foreign key. |
IS_DEFERRABLE | System.String | Whether the foreign key is deferrable. This value is YES or NO. |
INITIALLY_DEFERRED | System.String | Whether the foreign is initially deferrable. This value is YES or NO. |