CATEGORII DOCUMENTE |
Secvente
O secventa este un obiect in baza de date care serveste pentru a genera intregi unici in sistemele multi-utilizator, evitand aparitia conflictelor si a blocarii.
Secventele sunt memorate si generate indiferent de tabele è aceeasi secventa poate fi utilizata pentru mai multe tabele. O secventa poate fi creata de un utilizator si poate fi partajata de mai multi utilizatori.
Crearea unei secvente se face cu ajutorul comenzii:
CREATE SEQUENCE [<nume_schema>.]<nume_secventa>
[INCREMENT BY n] [START WITH m]
CACHE k | NOCACHE specifica numarul de valori alocate de server-ul Oracle pe care le va pastra in memoria cache pentru a oferi utilizatorilor un acces rapid (implicit sunt alocate 20 de valori);
O secventa este referita intr-o comanda SQL cu ajutorul pseudo-coloanelor:
NEXTVAL - refera valoarea urmatoare a secventei;
CURRVAL - refera valoarea curenta a secventei.
NEXTVAL si CURRVAL pot fi folosite in:
clauza VALUES a unei comenzi INSERT;
clauza SET a unei comenzi UPDATE;
lista SELECT a unei subcereri dintr-o comanda INSERT;
lista unei comenzi SELECT.
NEXTVAL si CURRVAL nu pot fi folosite in:
subinterogare in SELECT, DELETE sau UPDATE;
interogarea unei vizualizari;
comanda SELECT cu operatorul DISTINCT;
comanda SELECT cu clauza GROUP BY, HAVING sau ORDER BY;
clauza WHERE a unei comenzi SELECT;
conditia unei constrangeri CHECK;
valoarea DEFAULT a unei coloane intr-o comanda CREATE TABLE sau ALTER TABLE;
comanda SELECT care este combinata cu alta comanda SELECT printr-un operator multime (UNION, INTERSECT, MINUS).
Din dictionarul datelor pot fi obtinute informatii despre secvente folosind vizualizarea USER_SEQUENCES.
Sa se creeze o secventa domeniuseq care sa fie utilizata pentru a insera noi domenii in tabelul domeniu si sa se insereze un nou domeniu.
Sa se afiseze informatiile referitoare la secventa domeniuseq.
CREATE SEQUENCE domeniuseq
START WITH 1
INCREMENT BY 1;
INSERT INTO domeniu
VALUES (domeniuseq.NEXTVAL,'Informatica');
SELECT INCREMENT, START, MAXVALUE, MINVALUE,
FROM USER_SEQUENCES
WHERE SEQUENCE_NAME = 'domeniuseq';
Modificarea unei secvente se face prin comanda ALTER SEQUENCE. Sintaxa comenzii este similara instructiunii CREATE SEQUENCE , dar:
noua valoare maxima pentru MAXVALUE nu poate fi mai mica decat valoarea curenta;
optiunea START WITH nu poate fi modificata de comanda.
Suprimarea unei secvente se face cu ajutorul comenzii:
DROP SEQUENCE [<nume_schema>.]<nume_secventa>;
Dupa ce a fost stearsa, secventa nu mai poate fi referita. Pentru a putea sterge sau modifica secventa trebuie fie sa fi proprietarul acesteia, fie sa ai privilegiul de sistem DROP ANY SEQUENCE, respectiv privilegiul ALTER SEQUENCE.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1325
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved