Maison > base de données > tutoriel mysql > Comment puis-je incrémenter automatiquement une colonne de clé primaire Oracle existante ?

Comment puis-je incrémenter automatiquement une colonne de clé primaire Oracle existante ?

Linda Hamilton
Libérer: 2024-12-27 00:28:17
original
205 Les gens l'ont consulté

How Can I Make an Existing Oracle Primary Key Column Auto-Increment?

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

  1. 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.
  2. 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é

  1. 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal