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) );
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é :
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);
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;
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
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!