Oracle データベースは、外部キーのサポートなどの強力な機能を備えた、非常に人気のあるリレーショナル データベース管理システム (RDBMS) です。
外部キーは、あるテーブルで別のテーブルの行に関連付けるために使用されるフィールドまたはフィールドのグループを指します。これを使用して、データの整合性を確保し、クエリベースのデータ アクセスを有効にすることができます。外部キー制約を追加する前に、必要なテーブルとテーブル間の関連付けを Oracle で確立する必要があります。今回はOracleにおける外部キーの設定手順を詳しく紹介します。
1. テーブルとリレーションシップの作成
まず、外部キー制約を設定する必要があるテーブルと、そのテーブルを指すテーブルを作成する必要があります。 Customers テーブルを Orders テーブルに関連付けたいとします。次のコードを使用して、Oracle でこれら 2 つのテーブルを作成できます。
CREATE TABLE customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50), customer_email VARCHAR(100) ); CREATE TABLE orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
上の例では、customers と order という 2 つのテーブルを作成しました。 order テーブルには、顧客に対応する customer_id フィールドが含まれています。これは、customers テーブルの主キー フィールドです。
2. 外部キー制約の追加
関係を確立した後、外部キー制約を追加できます。 Oracle の外部キー制約は、テーブルの作成時に定義することも、テーブルの作成後に追加することもできます。
前のステップでは、外部キー制約を定義し、FOREIGN KEY および REFERENCES ステートメントを通じてテーブルに追加しました。ここでは、各キーワードの意味を詳しく説明します。
Oracle では、外部キー制約を追加するための構文は次のとおりです。
ALTER TABLE child_table ADD CONSTRAINT fk_name FOREIGN KEY (child_column) REFERENCES parent_table (parent_column);
このうち、child_table は外部キー フィールドを含む子テーブル、child_column は外部キー フィールドの名前です。外部キー列、parent_table はターゲット テーブルの名前、parent_column はターゲット テーブルの主キー列の名前です。 fk_name は外部キー制約の名前であり、一意である必要があります。
たとえば、orders テーブルでは、次の外部キー制約を追加できます (これは、テーブルの作成時に CREATE TABLE ステートメントを使用して実行できることに注意してください):
ALTER TABLE orders ADD CONSTRAINT fk_customer_id FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE;
これは次のようになります。 order テーブル内で、fk_customer_id という名前の外部キー制約をorders に追加します。これは、customers テーブルの主キー列 customer_id を参照します。 Customers テーブルの行を削除すると、その行に関連付けられているすべての注文も削除されます。
3. 外部キー制約をテストする
外部キー制約をテーブルに追加したら、それが適切に機能するかどうかをテストできます。この制約は、customer_id 値と一致しない行を order テーブルに挿入することでテストできます。
INSERT INTO orders (order_id, order_date, customer_id) VALUES (1, '2021-01-01', 100); -- ERROR: ORA-02291: integrity constraint (fk_customer_id) violated - parent key not found
これは、customers テーブルに存在しない customer_id 値を参照しているため、エラーが発生します。整合性制約関連のエラー コード ORA-02291 を使用して、外部キーが機能していることを確認できます。
4. 概要
Oracle では、外部キーはデータの整合性を確保し、テーブル間の関係を維持するための重要なツールです。 FOREIGN KEY および REFERENCES キーワードを使用して外部キー制約を定義し、ON DELETE CASCADE、SET NULL、または NO ACTION を使用してカスケード操作を定義できます。外部キー制約を定義した後、それが適切に動作するかどうかをテストし、データベース操作で機能することを確認できます。
以上がOracle での外部キーの設定プロセスの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。