résumé: dans ce tutoriel, vous apprendrez à utiliser la colonne Oracle identity pour définir facilement une colonne numérique générée automatiquement pour une table.

Introduction à la colonne d’identité Oracle

Oracle 12c a introduit une nouvelle façon de définir une colonne d’identité pour une table, qui est similaire à la colonneAUTO_INCREMENT dans MySQL ouIDENTITY dans SQL Server.

la colonne identité est très utile pour la colonne clé primaire de substitution., Lorsque vous insérez une nouvelle ligne dans la colonne identité, Oracle génère automatiquement et insère une valeur séquentielle dans la colonne.

pour définir une colonne identity, vous utilisez la clause identity comme indiqué ci-dessous:

tout d’abord, le mot-cléGENERATED est obligatoire.

Deuxièmement, vous pouvez spécifier une option pour générer des valeurs d’identité:

  • GENERATED ALWAYS: Oracle génère toujours une valeur pour la colonne d’identité. Essayez d’insérer une valeur dans la colonne d’identité entraînera une erreur.,
  • GENERATED BY DEFAULT: Oracle génère une valeur pour la colonne identity si vous ne fournissez aucune valeur. Si vous fournissez une valeur, Oracle insère cette valeur dans la colonne identité. Pour cette option, Oracle émettra une erreur si vous insérez une valeur NULL dans la colonne identity.
  • GENERATED BY DEFAULT ON NULL: Oracle génère une valeur pour la colonne identity si vous fournissez une valeur NULL ou aucune valeur du tout.

Troisièmement, vous pouvez avoir un certain nombre d’options pour la colonne d’identité.,

  • START WITH initial_value contrôles de la valeur initiale à utiliser pour la colonne d’identité. La valeur par défaut valeur initiale est 1.
  • INCREMENT BY internval_value définit l’intervalle entre les valeurs générées. Par défaut, la valeur d’intervalle est 1.
  • CACHE définit un certain nombre de valeurs Qu’Oracle doit générer au préalable pour améliorer les performances. Vous utilisez cette option pour la colonne qui a un nombre élevé d’insertions.

exemples de colonnes D’identité Oracle

prenons quelques exemples d’utilisation des colonnes D’identité Oracle.,

A) GÉNÉRÉS TOUJOURS exemple

L’instruction suivante crée une table nommée identity_demo qui se compose d’une colonne d’identité:

La déclaration suivante insère une nouvelle ligne dans la balise identity_demo table:

Parce que nous n’avons pas spécifier une valeur pour le id colonne, Oracle générée automatiquement une valeur séquentielle à partir de 1.,

La déclaration suivante tente d’insérer une valeur dans la balise id colonne d’identité:

Oracle a publié une erreur:

Parce que la colonne id est défini comme GENERATED ALWAYS, il ne pouvait pas accepter une valeur fournie.,

B) GENERATED BY DEFAULT example

Let’s change the id column to GENERATED BY DEFAULT:

The following statement inserts a new row into the identity_demo table:

It worked as expected.,

La déclaration suivante insère une nouvelle ligne dans la balise identity_demo tableau avec une valeur fournie pour la balise id colonne:

Dans cet exemple, Oracle utilisé la valeur fournie et l’a inséré dans la table.,Tout d’abord, recrée le identity_demo table dont le id colonne est définie comme l’identité de la colonne avec la valeur initiale commence à partir de 100:

Deuxièmement, insérer une ligne dans la balise identity_demo table:

Troisièmement, les données de la requête à partir de la balise identity_demo table:

Comme vous pouvez le voir, la valeur initiale de la balise id colonne est de 100, comme spécifié dans l’identité de la clause.,

E) incrémenter par exemple d’option

tout d’abord, Modifiez la colonne id de la tableidentity_demo qui inclut les optionsSTART WITH EtINCREMENT BY.

Deuxièmement, insérer deux lignes dans le identity_demo table:

Troisièmement, les données de la requête à partir de la table pour vérifier les plaquettes:

Comme vous pouvez le voir, la première ligne contient la valeur de l’id 10. La deuxième ligne a la valeur id 20., C’est ce que nous avons défini pour la colonne id qui devrait commencer par 10 et augmenter de 10 pour la nouvelle ligne.

Oracle de la colonne d’identité restrictions

L’identité des colonnes sont soumis aux restrictions suivantes:

  • Chaque table a une et une seule colonne d’identité.
  • Le type de données de la colonne d’identité doit être un type de données numérique. le type de données défini par l’utilisateur n’est pas autorisé à utiliser avec la clause identity.
  • la colonne identity n’est pas héritée par l’instructionCREATE TABLE AS SELECT.,
  • la colonne identity ne peut pas avoir une autre contrainteDEFAULT.
  • l’algorithme de chiffrement pour les colonnes d’identité chiffrées peut être déduit, vous devez donc utiliser un algorithme de chiffrement fort.
  • La contrainte en ligne de la colonne identity ne doit pas entrer en conflit avec la contrainteNOT NULLEtNOT DEFERRABLE indiquée par la clause identity.

dans ce tutoriel, vous avez appris à utiliser la colonne Oracle identity qui vous permet de définir facilement une colonne numérique générée automatiquement pour une table.,

  • ce tutoriel a Été utile?
  • Ouinon

Articles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *