Transakcje w języku SQL na przykładzie SZBD MySQL - ćwiczenia praktyczne

1. Zalogować się do serwera MySQL jako root i sprawdzić, w jakim trybie obsługi transakcji pracuje serwer. Jeśli trzeba, przełączyć serwer w tryb jawnego zatwierdzania transakcji.

SELECT @@AUTOCOMMIT;
SET AUTOCOMMIT=0;
SELECT @@AUTOCOMMIT;

2-12. Korzystając z transakcji, sprawdzić, jakie wynagrodzenie mają pracownicy zatrudnieni w latach 90. ubiegłego wieku i pracujący na stanowisku Warehouse Manager, zwiększyć to wynagrodzenie tym pracownikom o 10%, ponownie sprawdzić i zatwierdzić transakcję. Sprawdzić, czy po zatwierdzeniu transakcji dane uległy zmianie.

START TRANSACTION;

SELECT CONCAT(last_name, ' ', first_name) AS name, start_date, salary, (salary * 1.1) AS newSalary
FROM emp
WHERE start_date >= '1990-01-01 00:00:00' AND start_date < '1999-12-31 23:59:59'
ORDER BY last_name, first_name;

UPDATE emp
SET salary = salary * 1.1
WHERE start_date >= '1990-01-01 00:00:00' AND start_date < '1999-12-31 23:59:59';

SELECT CONCAT(last_name, ' ', first_name) AS name, start_date, salary
FROM emp
WHERE start_date >= '1990-01-01 00:00:00' AND start_date < '1999-12-31 23:59:59'
ORDER BY last_name, first_name;

COMMIT;

2-23. Korzystając z transakcji sprawdzić sugerowaną cenę produktu, którego nazwa zaczyna się od Prostar. Zwiększyć sugerowaną cenę tych produktów o 5%.

START TRANSACTION;

SELECT name, suggested_price, (suggested_price * 1.05) as newSugestedPrice
FROM product
WHERE name LIKE 'Prostar%';

UPDATE product
SET suggested_price = suggested_price * 1.05
WHERE name LIKE 'Prostar%';

SELECT name, suggested_price
FROM product
WHERE name LIKE 'Prostar%';

COMMIT;

SELECT name, suggested_price
FROM product
WHERE name LIKE 'Prostar%';

2-3

3 myśli nt. „Transakcje w języku SQL na przykładzie SZBD MySQL - ćwiczenia praktyczne

Skomentuj Maciej Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.