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’instruction
CREATE TABLE AS SELECT
., - la colonne identity ne peut pas avoir une autre contrainte
DEFAULT
. - 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 contrainte
NOT NULL
EtNOT 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