create table developers(
id int not null primary key,
name varchar (40),
specialty varchar(40),
experience int,
salary int);
insert into developers(id, name, specialty, experience, salary)
values (1, 'Eugene Suleimanov', 'Java', 2, 2500);
insert into developers(id, name, specialty, experience, salary)
values (2, 'Peter Romanenko', 'Java', 3, 3500);
insert into developers(id, name, specialty, experience, salary)
values (3, 'Andrei Komarov', 'C++', 3, 2500);
insert into developers(id, name, specialty, experience, salary)
values (4, 'Konstantin Geiko', 'C#', 2, 2000);
insert into developers(id, name, specialty, experience, salary)
values (5, 'Asya Suleimanove', 'UI/UX', 2, 1800);
insert into developers(id, name, specialty, experience, salary)
values (7, 'Ivan Ivanov', 'C#', 1, 900);
insert into developers(id, name, specialty, experience, salary)
values (8, 'Ludmila Geiko', 'UI/UX', 2, 1800);
select * from developers
Удаление всех С++ разработчиков
begin Transaction;
DELETE FROM developers
WHERE SPECIALTY = 'C++';
select * from developers;
COMMIT;
Выпознение команды ROLLBACK
ROLLBACK;
select * from developers
SAVEPOINT
begin Transaction;
SAVE TRANSACTION SP1;
select * from developers;
DELETE FROM developers WHERE ID = 7;
DELETE FROM developers WHERE ID = 6;
DELETE FROM developers WHERE ID = 5;
select * from developers;
Возращение к точке сохранения SP1
ROLLBACK TRANSACTION SP1;
select * from developers;
Изменение зарплаты где id=7
Begin Transaction
Update developers set salary = 1200 where id = 7
select * from developers
Залание по видео
SQL
Транзакция с использованием процедуры
create procedure spUpdatedevelopers
as
begin
begin try
begin Transaction
update developers set specialty = 'Python'
where id = 1
commit Transaction
print 'Transaction Commited'
end try
begin catch
rollback Transaction
print 'Transaction Rolled Back'
end catch
end
select * from developers
Изменение процедуры
alter procedure spUpdatedevelopers
as
begin
begin try
begin Transaction
update developers set specialty = 'Python-Java'
where id = 1
commit Transaction
print 'Transaction Commited'
end try
begin catch
rollback Transaction
print 'Transaction Rolled Back'
end catch
end
select * from developers
XAMPP
CREATE PROCEDURE spUpdateDeveloper() BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; SELECT 'Transaction Rolled Back' AS message; END; START TRANSACTION; UPDATE developers SET specialty = 'Python' WHERE id = 1; COMMIT; SELECT 'Transaction Committed' AS message; END;;
call spUpdateDeveloper();