forked from 4iz278/cviceni
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path05-5-transactions.sql
58 lines (44 loc) · 1013 Bytes
/
05-5-transactions.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
--http://dev.mysql.com/doc/refman/5.5/en/commit.html
--http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_acid
--co je transakce? K cemu se pouziva?
--je jedno, jestli pouzijeme START TRANSACTION nebo BEGIN, oboje udela to same. BEGIN je kratsi z pouziva se treba v PostgreSQL.
--START TRANSACTION;
--BEGIN;
INSERT INTO phones
(
client_id,
phone
)
VALUES
(
1,
'111-111-111'
)
;
INSERT INTO phones
(
client_id,
phone
)
VALUES
(
1,
'222-222-222'
)
;
INSERT INTO phones
(
client_id,
phone
)
VALUES
(
1,
'333-333-333'
)
;
--ROLLBACK
--COMMIT
--POZOR: nektere jine databaze (napr. PostgreSQL) neumozni udelat commit, pokud uvnitr transakce doslo k nejake chybe (treba pokus o insert s neexistujicim cizim klicem). MySQL je s tim (bohuzel) v pohode a commit provede.
--transakce funguje na vsechny zmeny, vcetne update, delete, atd., ZKUSIT.
--otazka: Navrhnete strukturu tabulky/tabulek pro prevod penez z jednoho bankovniho uctu na druhy BEZ NUTNOSTI POUZITI TRANSAKCI. Jde to vubec?