Colonne d'identité Oracle

Colonne d'identité Oracle
Dans ce tutoriel, vous apprendrez à utiliser et à travailler avec la colonne Oracle Identity pour définir une colonne numérique autoogénérée dans un tableau.

Si vous avez déjà travaillé avec les bases de données MySQL, vous connaissez peut-être la colonne Auto_increment. Dans Oracle, nous utilisons une colonne d'identité pour permettre au moteur de base de données de générer automatiquement une valeur numérique pour chaque ligne ajoutée au tableau à un intervalle spécifique.

Colonne d'identité Oracle

La colonne d'identité Oracle est disponible en version 12c et au-dessus. La colonne d'identité génère automatiquement une valeur numérique pour chaque ligne insérée dans le tableau.

Étant donné que le moteur de la base de données génère une valeur unique pour chaque ligne ajoutée au tableau, elle fonctionne comme une clé primaire de substitution dans la base de données.

Dans Oracle, nous définissons une colonne d'identité en utilisant la syntaxe ci-dessous:

Généré [toujours | Par défaut [sur null]]
Comme identité [(identité_options)]]

Les paramètres de déclaration, comme on le voit ci-dessus, comprennent les éléments suivants:

  1. Généré - Nous commençons par le mot-clé généré, où les valeurs sont générées automatiquement par le moteur de la base de données.
  2. Toujours - De même, cette valeur garantit que seul le moteur de base de données peut ajouter des valeurs à la colonne. Tenter d'ajouter des valeurs manuellement entraînera une erreur.
  3. Par défaut - cela entraînera une erreur si vous fournissez une valeur nulle à la colonne.
  4. Par défaut sur NULL - Oracle générera une valeur au lieu de renvoyer une erreur sur l'entrée nul.
  5. En tant qu'identité - cela définit qu'il s'agit d'une colonne d'identité.
  6. Commencez par valeur - définit la valeur initiale utilisée pour la colonne d'identité. Par défaut, la valeur commencera à 1.
  7. Incrément par valeur - définit la valeur d'intervalle entre les valeurs générées. Par défaut, la fonction utilisera un intervalle de 1.
  8. Cache - Définit le nombre de valeurs que le moteur de base de données générera à l'avance pour augmenter les performances. Cette option est utile lorsque vous avez besoin de automatiquement de nombreux enregistrements.

Colonnes d'identité Oracle

Découvrons des exemples de base de la façon d'utiliser la colonne d'identité dans les bases de données Oracle.

Colonne d'identité Oracle Create

La façon la plus courante et recommandée de créer une colonne d'identité à un tableau est pendant la création.

Un exemple ci-dessous montre comment nous pouvons y parvenir:

Créer des produits de table (
Numéro Product_id généré toujours comme identité,
product_name varchar2 (255) pas null,
Numéro de quantité non nulle (Quantité> 0),
numéro de prix,
Clé primaire (Product_id)
));

L'énoncé ci-dessus crée un tableau appelé Products avec une colonne d'identité de Product_id.

Nous pouvons ensuite insérer quelques échantillons d'enregistrements dans la table en tant que:

Insérer dans les valeurs de produits (Product_name, Quantity, Price) («Microsoft Volterra», 0, 599);

Dans ce cas, nous n'avons pas spécifié la valeur de la colonne Product_id dans le tableau ci-dessus. Cela permettra au moteur de base de données de générer automatiquement des valeurs pour les colonnes ajoutées. Comme mentionné, Oracle commencera à la valeur de 1 et l'incrément de 1 pour chaque ligne ajoutée.

Comme mentionné, la tentative d'ajouter une valeur pour la colonne d'identité entraînera une erreur:

Insérer dans les valeurs de produits (product_id, product_name, quantité, prix) (2, «Microsoft Volterra», 10, 599);

Erreur résultante:

Erreur SQL: ORA-32795: Impossible d'insérer dans une colonne d'identité toujours générée

En effet, la colonne d'identité est définie pour générer toujours.

Exemple 2 - Identité Oracle générée par défaut.

Nous pouvons également modifier la colonne d'identité de toujours générée à générée par défaut comme:

Créer des produits de table (
Numéro Product_id généré par défaut comme identité,
product_name varchar2 (255) pas null,
Numéro de quantité non nulle (Quantité> 0),
numéro de prix,
Clé primaire (Product_id)
));

Dans ce cas, nous pouvons ajouter manuellement une valeur pour la colonne Product_id.

Insérer dans les valeurs de produits (product_id, product_name, quantité, prix) (1, «Microsoft Volterra», 0, 599);

De même, si nous ne fournissons pas de valeur pour la colonne, le moteur de la base de données le générera automatiquement.

Vous ne pouvez pas insérer une valeur nulle dans une colonne d'identité comme défini ci-dessus.

Exemple 3
Nous pouvons également définir le début et les valeurs d'intervalle pendant la création de table comme indiqué:

Créer des produits de table (
Numéro Product_id généré par défaut lorsque l'identité commence avec 10 incrément par 2,
product_name varchar2 (255) pas null,
Numéro de quantité non nulle (Quantité> 0),
numéro de prix,
Clé primaire (Product_id)
));

Dans ce cas, les valeurs autoogénérées commenceront à dix et incrément de 2 pour chaque nouvelle ligne ajoutée au tableau.

Points à noter

Bien qu'une colonne d'identité fournit une plus grande commodité lorsque vous travaillez avec un grand ensemble de données, il est livré avec des restrictions. Ceux-ci inclus:

  1. Une table ne peut contenir qu'une seule colonne d'identité.
  2. Une colonne d'identité ne peut pas contenir de contrainte par défaut.
  3. Une table de création ne peut pas hériter d'une colonne d'identité comme instruction SELECT.
  4. La valeur d'une colonne d'identité ne peut être qu'un type numérique.

Conclusion

Dans cet article, vous avez découvert les différentes méthodes et techniques de travail avec la colonne d'identité dans les bases de données Oracle.