Академический Документы
Профессиональный Документы
Культура Документы
EJERCICIOS
TRANSACCIONES
Usuario1
compitz=# grant insert on p,s to usuario1;
GRANT
GRANT
GRANT
Usuario2
GRANT
GRANT
TRANSACCIÓN 1
USUARIO2
compitz=> select * from s;
------+--------------------------------+--------+------------+-----------
------+---------+-------------+------------
INSERT 0 1
compitz=> begin;
INSERT 0 1
------+--------------------------------+--------+------------+-----------
compitz=> commit;
COMMIT
USUARIO2
compitz=> select * from s;
------+--------------------------------+--------+------------+-----------
(10 filas)
TRANSACCIÓN 2
USUARIO1
compitz=> begin; (En ambos usuarios)
BEGIN
UPDATE 2
USUARIO2
compitz=> select * from s;
UPDATE 2
USUARIO1
compitz=> select * from s;
------+--------------------------------+--------+------------+-----------
(10 filas)
INSERT 0 1
compitz=> commit;
COMMIT
USUARIO2
compitz=> select *from s;
------+--------------------------------+--------+------------+-----------
(11 filas)
compitz=> commit;
COMMIT
TRANSACCIÓN 3
USUARIO1
compitz=> begin; (En ambos usuarios)
BEGIN
UPDATE 1
USUARIO2
compitz=> update p set pnombre='PIJO' where pnombre='PIJA';
(Nota: Lo cambie a PIJO por que anteriormente ya había cambiado TORNILLO a PIJA)
UPDATE 1
USUARIO1
compitz=> select * from p;
------+------+-------------+---------+------------
compitz=> commit;
COMMIT
USUARIO2
compitz=> select * from p;
------+------+-------------+---------+------------
compitz=> commit;
COMMIT
TRANSACCIÓN 4
USUARIO1
compitz=> begin work; (En ambos usuarios)
BEGIN
UPDATE 1
USUARIO2
compitz=> update j set presupuesto=77000 where jnum='J003';
UPDATE 1
USUARIO1
compitz=> update j set jciudad='CHOLULA' where jnum='J003';
UPDATE 1
USUARIO2
compitz=> select * from j;
jnum | jnombre | presupuesto | jciudad
------+---------+-------------+------------
UPDATE 0
compitz=> rollback;
ROLLBACK
USUARIO1
compitz=> commit;
COMMIT
RESULTADOS OBTENIDOS
TRANSACCIÓN 1: El usuario2 comienza realizando operaciones de consulta,
posteriormente el usuario1 realiza una inserción para después abrir un begin
donde insertará más datos, consultará para finalizar la transacción con el commit.
El usuario2 consulta proveedores.