Transformation par incrémentation automatique pour les colonnes de table Oracle existantes
Problème :
Comment une colonne existante, déjà désignée comme la clé primaire, être configurée pour s'auto-incrémenter dans une base de données Oracle ? La colonne a été créée avec le type de données VARCHAR2(9 BYTE).
Solution :
Oracle 11g et Prior (Pre-12c) : Séquence et Déclencheur
-
Créer une séquence :Établir une séquence, comme t_seq, avec la valeur de départ de 150111111 et des pas incrémentiels de 1.
-
Implémenter un déclencheur : Développer un déclencheur BEFORE INSERT qui remplit la colonne avec la valeur suivante de la séquence lorsque la valeur de la colonne est NULL.
Oracle 12c et Plus tard : Colonne d'identité
-
Utiliser la colonne d'identité : Définissez une COLONNE D'IDENTITÉ dans l'instruction de création de table, en commençant par 150111111 et en incrémentant de 1.
Exemple :
CREATE TABLE t (
ID NUMBER GENERATED ALWAYS AS IDENTITY
START WITH 150111111 INCREMENT BY 1,
text VARCHAR2(50)
);
Copier après la connexion
Avantages des colonnes d'identité :
- Simplifie l'auto -implémentation d'incréments sans avoir besoin de séquences ou de déclencheurs.
- Assure valeurs séquentielles uniques pour la colonne spécifiée.
Informations supplémentaires :
- Oracle génère une séquence (ISEQ$$) pour prendre en charge la colonne d'identité .
- Surveillez les informations d'incrémentation automatique à l'aide de ALL_TAB_IDENTITY_COLS vue.
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!