Langages d'exploitation des bases de données

Blogue

Les cours

Générer les clés primaires sans séquence ni trigger avec Oracle


Rédigé par , le
Depuis Oracle 12c, il n'est plus nécessaire de faire des séquences (ni des triggers) pour générer les valeurs des clés primaires. Il était temps!
 
L'exemple suivant montre l'équivalent Oracle du AUTO_INCREMENT, disponible sous MySQL. 
CREATE TABLE MESSAGE (
  ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, 
  CREATEUR VARCHAR2(20),
  CONTENU VARCHAR2(1000),
  CONSTRAINT PK_MESSAGE PRIMARY KEY (ID)
);
 
Avez-vous remarqué le "GENERATED BY DEFAULT ON NULL AS IDENTITY"? 
 
On peut ensuite insérer une ligne, en omettant de spécifier la clé primare : 
INSERT INTO MESSAGE (CREATEUR, CONTENU) VALUES ('Fred', 'Lorem Ipsum bla bla');                   
INSERT INTO MESSAGE (CREATEUR, CONTENU) VALUES ('Marc-André', 'Ben non, hello');

COMMIT;

 C'est tout! La clé primaire a été affectée automatiquement.
SELECT * FROM MESSAGE;

ID 	CREATEUR	CONTENU
1 	Fred		Lorem Ipsum bla bla
2 	Marc-André	Ben non, bacon Ipsum bla 
Ajouter votre commentaire
(facultatif)
(facultatif et non divulgé)
Captcha image
Prenez le nombre affiché et faites moins 1.
 
Blog  

Les articles


Pour envoyer une demande d'assistance à l'enseignant, cliquez ici