Ultra Light J には、テーブル、カラム、インデックス、キーをデータベースに作成できるスキーマ・メソッドがあります。この項では、スキーマ操作を行う方法について説明します。
テーブル・スキーマ Connection インタフェースのメソッドを使用してテーブルのプロパティにアクセスします。スキーマには TableSchema インタフェースを使用して直接アクセスします。TableSchema インタフェースを参照してください。
カラム・スキーマ TableSchema インタフェースのメソッドを使用してカラムのプロパティにアクセスします。スキーマには ColumnSchema インタフェースを使用して直接アクセスします。ColumnSchema インタフェースを参照してください。
インデックス・スキーマ TableSchema インタフェースのメソッドを使用してインデックスにアクセスします。スキーマには IndexSchema インタフェースを使用して直接アクセスします。IndexSchema インタフェースを参照してください。
外部キー・スキーマ Connection インタフェースのメソッドを使用して外部キーにアクセスします。スキーマには ForeignKeySchema インタフェースを使用して直接アクセスします。ForeignKeySchema インタフェースを参照してください。
テーブル、カラム、インデックス、キーのすべての操作は、API を使用して実行する必要があり、接続しているデータベースがスキーマ作成モードになっている場合に限られます。
Ultra Light J データベースに接続します。
この例は、データベースが Connection オブジェクトである conn に接続していることを前提としています。Ultra Light J データベースへの接続方法については、Ultra Light J データベース・ストアへのアクセスを参照してください。
次のコードを使用して、Connection をスキーマ作成モードにします。
conn.schemaCreateBegin(); |
スキーマ作成モードでは、データ操作の実行が禁止され、データベースへの追加接続がロック・アウトされます。
テーブル、カラム、インデックス、キーの操作をすべて実行します。
次の手順は、emp_number という整数カラムを含む新しい Employee テーブルを作成する方法を示しています。emp_number カラムは Employee テーブルのプライマリ・インデックスであり、また Security テーブルの 整数カラムである access_numberを参照する外部キーとして機能します。
新しいテーブルを作成するには: createTable メソッドを使用してテーブルの名前を定義し、結果を TableSchema に割り当てます。
TableSchema table_schema = conn.createTable("Employee"); |
結果を TableSchema に割り当てると、テーブルに対してより詳細なスキーマ操作を実行できます。詳細については、TableSchema インタフェースを参照してください。
テーブルにカラムを追加するには: createColumn メソッドを使用して、カラムの名前と型を定義します。
table_schema.createColumn("emp_number", Domain.INTEGER); |
カラムにプライマリ・インデックスを割り当てるには:
createPrimaryIndex メソッドを使用してテーブルに新しいプライマリ・インデックスを作成し、結果を IndexSchema に割り当てます。
IndexSchema index_schema = table_schema.createPrimaryIndex("prime_keys"); |
addColumn メソッドを使用して、プライマリ・インデックス・カラムとソート順を指定します。
index_schema.addColumn("emp_number", IndexSchema.ASCENDING); |
カラムに外部キーを割り当てるには: この手順は、access_number という整数カラムがある Security というテーブルがデータベース内にすでに存在することを前提としています。このテーブルが存在しない場合は、前述の手順で作成してください。
createForeignKey メソッドを使用して、外部キーの作成に必要なテーブルを指定します。
ForeignKeySchema foreign_key_schema = conn.createForeignKey( "Employee", "Security", "fk_emp_to_sec" ); |
最初のパラメータは、外部キーを格納するテーブルを指定します。2 つ目のパラメータは、外部キーの参照先カラムを格納するテーブルを指定します。
addColumnReference メソッドを使用して、外部キーの作成に必要な 2 つのカラムを指定します。
foreign_key_schema.addColumnReference("emp_number", "access_number"); |
最初のパラメータは、最初のテーブルで外部キーとなるカラムの名前を指定します。2 つ目のパラメータは、2 つ目のテーブルで外部キーの参照先となるカラムの名前を指定します。
Connection のスキーマ作成モードを終了します。
conn.schemaCreateComplete(); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |