Maison > base de données > Oracle > Introduction détaillée au processus de configuration des clés étrangères dans Oracle

Introduction détaillée au processus de configuration des clés étrangères dans Oracle

PHPz
Libérer: 2023-04-04 09:29:55
original
4255 Les gens l'ont consulté

La base de données Oracle est un système de gestion de base de données relationnelle (SGBDR) très populaire doté de fonctionnalités puissantes, notamment la prise en charge des clés étrangères.

Une clé étrangère fait référence à un champ ou à un groupe de champs utilisé dans une table pour se rapporter à une ligne dans une autre table. Il peut être utilisé pour garantir l’intégrité des données et permettre un accès aux données basé sur des requêtes. Avant d'ajouter des contraintes de clé étrangère, les tables et associations nécessaires entre les tables doivent être établies dans Oracle. Dans cet article, nous présenterons en détail le processus de configuration des clés étrangères dans Oracle.

1. Créer des tables et des relations
Tout d'abord, nous devons créer la table qui doit définir les contraintes de clé étrangère et la table pointant vers la table. Supposons que nous souhaitions associer la table des clients à la table des commandes. Nous pouvons créer ces deux tables dans Oracle en utilisant le code suivant :

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)
);
Copier après la connexion

Dans l'exemple ci-dessus, nous avons créé deux tables à savoir les clients et les commandes. La table order contient le champ customer_id correspondant au client, qui est le champ clé primaire de la table clients.

2. Ajouter des contraintes de clé étrangère
Après avoir établi la relation, nous pouvons ajouter des contraintes de clé étrangère. Les contraintes de clé étrangère dans Oracle peuvent être définies lors de la création de la table ou ajoutées après la création de la table.

À l'étape précédente, nous avons défini des contraintes de clé étrangère et les avons ajoutées à la table via les instructions FOREIGN KEY et REFERENCES. Ici, nous expliquerons en détail la signification de chaque mot-clé :

  1. CLÉ ÉTRANGÈRE : Définissez un champ de clé étrangère.
  2. RÉFÉRENCES : Définit une table cible pour les clés étrangères et spécifie la clé primaire de la table cible.
  3. ON DELETE CASCADE : définissez l'opération en cascade lors de la suppression des enregistrements de la table parent. Lorsqu'un enregistrement de la table parent est supprimé, les enregistrements associés de la table enfant sont également supprimés. Vous pouvez utiliser ON DELETE SET NULL ou ON DELETE NO ACTION pour spécifier d'autres opérations, telles que définir la clé étrangère sur NULL ou interdire la suppression.

Dans Oracle, la syntaxe pour ajouter une contrainte de clé étrangère est la suivante :

ALTER TABLE child_table 
ADD CONSTRAINT fk_name 
FOREIGN KEY (child_column) 
REFERENCES parent_table (parent_column);
Copier après la connexion

où, child_table est la table enfant contenant le champ de clé étrangère, child_column est le nom de la colonne de clé étrangère, parent_table est le nom de la table cible, parent_column est le nom de la table cible Le nom de la colonne de clé primaire. fk_name est le nom de la contrainte de clé étrangère et doit être unique.

Par exemple, dans notre table des commandes, nous pouvons ajouter la contrainte de clé étrangère suivante (notez que cela peut être fait au moment de la création de la table via une instruction CREATE TABLE) :

ALTER TABLE orders 
ADD CONSTRAINT fk_customer_id 
FOREIGN KEY (customer_id) 
REFERENCES customers(customer_id) 
ON DELETE CASCADE;
Copier après la connexion

Cela ajoutera une contrainte de clé étrangère nommée fk_customer_id au table des commandes Contrainte de clé, qui fait référence à la colonne de clé primaire customer_id dans la table des clients. Lorsque vous supprimez une ligne dans la table clients, l'opération supprime également toutes les commandes qui lui sont associées.

3. Tester les contraintes de clé étrangère
Une fois la contrainte de clé étrangère ajoutée au tableau, nous pouvons tester si elle fonctionne correctement. Nous pouvons tester cette contrainte en insérant une ligne dans la table des commandes qui ne correspond pas à la valeur customer_id :

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
Copier après la connexion

Cela provoquera une erreur car elle référence une valeur customer_id qui n'existe pas dans la table des clients. Nous pouvons utiliser le code d'erreur ORA-02291 lié à la contrainte d'intégrité pour vérifier que la clé étrangère fonctionne.

4. Résumé
Dans Oracle, les clés étrangères sont un outil important pour garantir l'intégrité des données et maintenir les relations entre les tables. Nous pouvons utiliser les mots-clés FOREIGN KEY et REFERENCES pour définir des contraintes de clé étrangère et définir des opérations en cascade en utilisant ON DELETE CASCADE, SET NULL ou NO ACTION. Après avoir défini la contrainte de clé étrangère, nous pouvons tester si elle fonctionne correctement et nous assurer qu'elle fonctionne dans les opérations de base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal