Maison > base de données > tutoriel mysql > Comment ajouter une incrémentation automatique à une colonne de clé primaire existante dans Oracle ?

Comment ajouter une incrémentation automatique à une colonne de clé primaire existante dans Oracle ?

Linda Hamilton
Libérer: 2025-01-03 05:35:39
original
1027 Les gens l'ont consulté

How to Add Auto-Increment to an Existing Primary Key Column in Oracle?

Ajout d'une incrémentation automatique à une colonne existante dans Oracle

Dans Oracle, pour ajouter une fonctionnalité d'incrémentation automatique à une colonne existante qui est déjà la clé primaire d'une table, vous pouvez utiliser différentes méthodes selon la version d'Oracle que vous utilisez.

Pour Oracle 11g et Prior

  • Créez une séquence pour incrémenter la colonne via un déclencheur.
CREATE SEQUENCE t_seq
  START WITH 150111111
  INCREMENT BY 1;

CREATE OR REPLACE TRIGGER t_trg
  BEFORE INSERT ON t
  FOR EACH ROW
  WHEN (new.id IS NULL)
  BEGIN
    SELECT t_seq.NEXTVAL
    INTO   :new.id
    FROM   dual;
  END;
Copier après la connexion

Pour Oracle 12c et versions ultérieures

  • Utilisez la colonne Identité fonctionnalité.
CREATE TABLE t
  (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
  );
Copier après la connexion

Insertion de données

Une fois la fonctionnalité d'incrémentation automatique configurée, vous pouvez insérer des données dans le tableau comme d'habitude.

Exemple

Considérons une table nommée t avec une colonne nommée ID comme la clé primaire et vous souhaitez la configurer pour l'incrémentation automatique à partir de 150111111.

Utilisation de la méthode séquence dans Oracle 11g :

INSERT INTO t(text) VALUES('auto-increment test 1');
Copier après la connexion

Utilisation de la méthode de colonne Identité dans Oracle 12c :

INSERT INTO t(text) VALUES('This table has an identity column');
Copier après la connexion

Remarque :

  • La séquence créée pour l'auto-incrémentation de la clé primaire est nommée ISEQ$$, qui peut être vérifiée à l'aide du Vue USER_SEQUENCES.
  • La vue ALL_TAB_IDENTITY_COLS fournit des informations sur les colonnes d'identité dans le base de données.

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!

source:php.cn
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