Documente Academic
Documente Profesional
Documente Cultură
Autoincrement
Următorul exemplu va funcționa indiferent de versiunea de Oracle folosită (de obicei Oracle 11g Express
Edition - recomandat pentru instalarea pe laptop, sau Oracle 12c Enterprise - disponibil în laborator sau din
rețeaua RoEduNet)
Se crează în Data Modeler o entitate x cu două atribute: id și denumire (se observă în figura de mai jos, în
dreptul atributului „id“ o * și un # - ceea ce denotă faptul că atributul „id“ este cheie primară, iar implicit nu permite
valori nule)
1/7
BD Proiect
Se navighează în stânga, la „General“ și se bifează check-box-ul „Auto Increment“.
2/7
BD Proiect
SELECT * FROM x;
ID DENUMIRE
---------- ----------
1a
2b
3c
4d
3/7
BD Proiect
Următorul exemplu va funcționa doar începând cu versiunea Oracle 12c Release 1 - disponibil în laborator
sau din rețeaua RoEduNet, având la bază IDENTITY, pentru a permite migrarea mai ușoară în și din alte SGBD-
uri. ( https://docs.oracle.com/database/121/DRDAA/migr_tools_feat.htm#DRDAA109 )
Se crează în Data Modeler aceeași entitate x cu două atribute: id și denumire, ca în primul exemplu, numai
că în acest exemplu, se bifează și „Identity Column“ după „Auto Increment“.
Pasul 3
Pasul 1 Pasul 2
Pentru a nu mai genera trigger (ca în primul exemplu), trebuie navigat în stânga la „Auto Increment“ și de-
bifat „Generate Trigger“, ca în exemplul din figura următoare:
4/7
BD Proiect
Tot în această fereastră puteți schimba valorile de start, pasul, valoarea minimă și maximă care le vor lua
valorile din coloana „id“.
Apoi se navighează spre Modelul fizic: Click dreapta pe Physical Models [], new:
5/7
BD Proiect
La Physical Models [], se deschide tree-ul Oracle Database 12c/12cR2, apoi se deschide tree-ul Tables și
se dă click dreapta pe coloana „id“, apoi Properties , se trece în tab-ul Auto increment și se alege din drop down
list-ul „Auto increment DDL“: „IDENTITY clause“
6/7
BD Proiect
La generarea codului, nu uitați să alegeți Oracle 12c/12cR2 (se observă că nu se mai crează în mod auto-
mat secvență și trigger):
CREATE TABLE x (
id NUMBER(2) GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 NOCACHE ORDER )
NOT NULL,
denumire VARCHAR2(10)
);
SELECT * FROM x;
ID DENUMIRE
---------- ----------
1a
2b
3c
4d