Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Sql


Index » educatie » » informatica » Sql
» Limbajul de control al datelor (COMMIT, SAVEPOINT, ROLLBACK)


Limbajul de control al datelor (COMMIT, SAVEPOINT, ROLLBACK)


Limbajul de control al datelor (COMMIT, SAVEPOINT, ROLLBACK)

Comanda COMMIT permanentizeaza modificarile care au fost realizate de tranzactia curenta (o tranzactie este un set de comenzi DML - INSERT, UPDATE, DELETE sau MERGE); comanda suprima toate punctele intermediare definite in tranzactie si elibereaza blocarile tranzactiei.

Observatie

Sistemul realizeaza un commit implicit:

la inchiderea normala a unui client Oracle (de exemplu SQL*Plus),

dupa fiecare comanda LDD (CREATE, ALTER, DROP).

Comanda SAVEPOINT marcheaza un punct intermediar in procesarea tranzactiei. In acest mod este posibila impartirea tranzactiei in subtranzactii.

Comanda SAVEPOINT are sintaxa:

SAVEPOINT nume_pct_intermediar

Comanda ROLLBACK permite renuntarea la modificarile efectuate; aceasta determina incheierea tranzactiei, anularea modificarilor asupra datelor si restaurarea starii lor precedente.

Comanda ROLLBACK are sintaxa:-

ROLLBACK [TO SAVEPOINT nume_punct_salvare];

Observatie

- sistemul realizeaza un rollback implicit daca sistemul se inchide anormal (defectiune hardware sau software, pana de curent etc.);

- nici o comanda LDD (CREATE, ALTER; DROP) nu poate fi anulata.

Ce efect are urmatoarea secventa de instructiuni?

SELECT *

FROM dept_***;



SAVEPOINT a;

DELETE FROM dept_***;

INSERT INTO dept_***

VALUES (300, 'Economic',100,1000);

INSERT INTO dept_***

VALUES (350, 'Cercetare',200,2000);

SAVEPOINT b;

INSERT INTO dept_***

VALUES (400, 'Juritic',150,3000);

SELECT COUNT(*)

FROM dept_***;

ROLLBACK TO b;

SELECT COUNT(*)

FROM dept_***;

ROLLBACK TO a;

INSERT INTO dept_***

VALUES (500, 'Contabilitate',175,1500);

COMMIT;

SELECT *

FROM dept_***;





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate