Incrémentation automatique pour les colonnes Oracle préexistantes
Bien que l'ajout d'une fonctionnalité d'incrémentation automatique à une colonne existante ne soit pas pris en charge de manière native dans Oracle, diverses approches peuvent être utilisées pour y parvenir.
11g et Prior : Séquence et Déclencheur
Pour les versions Oracle 11g et antérieures, une séquence et un déclencheur peuvent être utilisés :
Exemple :
-- Create sequence CREATE SEQUENCE t_seq START WITH 150111111 INCREMENT BY 1; -- Alter table ALTER TABLE t ADD CONSTRAINT id_pk PRIMARY KEY (ID); -- Create trigger 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;
12c et versions ultérieures : identité Colonne
Oracle 12c a introduit la fonctionnalité de colonne d'identité, qui permet l'auto-incrémentation dans la table elle-même :
Exemple :
CREATE TABLE t ( ID NUMBER GENERATED ALWAYS AS IDENTITY START WITH 150111111 INCREMENT BY 1, text VARCHAR2(50) );
Veuillez noter que ces approches ne mettent pas à jour les valeurs existantes dans la colonne. Pour modifier les valeurs existantes, une requête de mise à jour distincte serait nécessaire.
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!