CREATE TABLE T(
id INT not null PRIMARY KEY,
s varchar(40),
si smallint);
INSERT INTO T(id,s) VALUES(1,'fisrt');
INSERT INTO T(id,s) VALUES(2,'second');
INSERT INTO T(id,s) VALUES(3,'third');
SELECT * FROM T;
--transaktsiooni loomine
begin transaction;
INSERT INTO T(id,s) VALUES(4,'fourth');
SELECT * FROM T;
--tegevuse tagasi võtmine
rollback;
SELECT * FROM T;
--loome transaktsiooni, mis võtab tagasi kustutatud
begin transaction;
delete from T where id>1
SELECT * FROM T;
rollback;
SELECT * FROM T;
XAMPP
CREATE TABLE T (id INT NOT NULL PRIMARY KEY, s VARCHAR(30), si SMALLINT);
INSERT INTO T (id, s) VALUES (1, 'first');
INSERT INTO T (id, s) VALUES (2, 'second');
INSERT INTO T (id, s) VALUES (3, 'third');
SELECT * FROM T ;
ROLLBACK;
SELECT * FROM T ;
START TRANSACTION;
INSERT INTO T (id, s) VALUES (4, 'fourth');
SELECT * FROM T ;
ROLLBACK;
SELECT * FROM T;
INSERT INTO T (id, s) VALUES (5, 'fifth');
ROLLBACK;
SELECT * FROM T;
SET AUTOCOMMIT = 0;
XAMPP ÜLESANNE
CREATE TABLE developers (id INT NOT NULL PRIMARY KEY, name VARCHAR(30), specilty varchar(30),si SMALLINT,salary int);
INSERT INTO `developers` (`id`, `name`, `specilty`, `experience`, `salary`) VALUES ('1', 'Eugene Suleimanov', 'Java', '2', '2500');

START TRANSACTION;
INSERT INTO developers (ID, name, specilty, experience, salary)
VALUES
(1, 'Eugene Suleimanov', 'Java', 2, 2500),
(2, 'Peter Romanenko', 'Java', 3, 3500),
(3, 'Andrei Komarov', 'C++', 3, 2500),
(4, 'Konstantin Geiko', 'C#', 2, 2000),
(5, 'Asya Suleimanova', 'UI/UX', 2, 1800),
(7, 'Ivan Ivanov', 'C#', 1, 900),
(8, 'Ludmila Geiko', 'UI/UX', 2, 1800);
COMMIT;
SQL VIDEO TUND
Create Table tblMailingAddress
(
AddressId int NOT NULL primary key,
EmployeeNumber int,
HouseNumber nvarchar(50),
StreetAddress nvarchar(50),
City nvarchar(10),
PostalCode nvarchar(50)
)
Insert into tblMailingAddress values (1, 101, '#10', 'King Street', 'Londoon', 'CR27DW')
Create Table tblPhysicalAddress
(
AddressId int NOT NULL primary key,
EmployeeNumber int,
HouseNumber nvarchar(50),
StreetAddress nvarchar(50),
City nvarchar(10),
PostalCode nvarchar(50)
)
Insert into tblPhysicalAddress values (1, 101, '#10', 'King Street', 'Londoon', 'CR27DW')
CREATE PROCEDURE spUpdateAddress2
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION;
UPDATE tblMailingAddress
SET City = 'LONDON22'
WHERE AddressId = 1 AND EmployeeNumber = 101;
UPDATE tblPhysicalAddress
SET City = 'LONDON13'
WHERE AddressId = 1 AND EmployeeNumber = 101;
COMMIT transaction;
END TRY
BEGIN CATCH
ROLLBACK transaction;
END CATCH;
END;

create table tblProduct(
productID int NOT NULL primary key,
NAME varchar(80),
UnitPrice int,
QityAvaible int);
insert into tblProduct(productID,NAME,UnitPrice,QityAvaible)
VALUES(1,'laptopts',2340,100)
Begin transaction
Update tblProduct set QityAvaible = 50 where productID = 1
rollback transaction;
select * from tblProduct

rollback transaction;


begin transaction
exec spUpdateAddress2;
SELECT * FROM tblMailingAddress;
SELECT * FROM tblPhysicalAddress;
rollback;

изменил название таблиц

с помощью процедуры изменил название city

rollback откатил изменения от