Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Secvente

sql



+ Font mai mare | - Font mai mic



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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1221
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved