- Milyen házat vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Kormányok / autós szimulátorok topikja
- Házimozi belépő szinten
- Kifejezetten Mac-felhasználóknak szánja két új monitorát a BenQ
- Miért tűntek el ezek a PC-alkatrészek?
- CPU léghűtés kibeszélő
- Notebook hibák
Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
Micsurin
#4804
üzenetére
Egy tranzakcióban futó adatmanipulációs (DML) utasítások (insert, update, merge, delete...) hatását csak az őket futtató DB session látja, amíg a tranzakció nincs commitálva.
Mittudomén, van egy táblád, amiben van 10 rekord.
Nyitsz egy adatbáziskezelő ablakot, amiben kiadsz 5 insertet, meg 3 updateet, majd kiadsz egy select count(*) from tabla;-t, akkor az ott 15-öt fog mutatni.
Közben nyitsz egy másik ablakot, egy ott kiadott select * from tabla; az eredeti állapotot, 10 rekordot fog mutatni, a még nyitva lévő tranzakcióban hozzáadott ötöt, meg az updateek hatását nem!
Ha az első ablakban kiadsz egy commit;-ot (amivel véglegesíted az addig nyitott tranzakcióban futtatott DML utasítások hatását és lezárod a tranzakciót), akkor a második ablakbeli select *-ot újrafuttatva már 15, módosult rekord fog megjelenni.
Ha az első ablakban commit; helyett rollback;-et nyomsz, akkor teljesen eldobódik a nyitott tranzakcióban futtatott DMLek hatása, és visszaáll az eredeti állapotra.
Tehát ha utána kiadnál egy select *-ot, akkor ugyanazt a 10 eredeti rekordot látnád az első ablakban is, mint korábban a kettes ablakban.Adatdefiníciós (DDL) utasítások (pl. tábla létrehozás, eldobás, oszlop hozzáadás, index létrehozás...) mindig önálló tranzakcióban futnak és azonnal commitálódnak, így azok nem vonhatóak vissza kiadás után.
Meg ha jól rémlik, akkor az adott DB sessionben még függőben lévő tranzakciót is commitálják!Savepointokat még nem használtam, de ahogy olvasom arra jó, hogy rollbacknél meg lehessen mondani, hogy ne az egész addigi tranzakciót dobja el, hanem csak a savepoint után futtatott utasításokat.
Lehet, hogy valakik szerint ez jó ötlet, de alapvetően sérti a tranzakciók atomiságát, és jóval nehezebb egy félig lefutott tranzakció által elcseszett adatokat javítani, mint ha eldobnád az egészet a francba, és javítás után elölről újrafuttatnád az egészet.
Új hozzászólás Aktív témák
- iPhone topik
- PlayStation 5
- Milyen házat vegyek?
- OTP Bank topic
- Milyen légkondit a lakásba?
- Mibe tegyem a megtakarításaimat?
- A fociról könnyedén, egy baráti társaságban
- Gitáros topic
- Kókuszdió: Tápegység – hova jutottunk 5 év alatt?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte H310M i5 8500 8GB DDR4 480GB SSD GTX 1050Ti 4GB Rampage SHIVA DeepCool 400W
- Limitált darabszám! Apple Mac Studio M2 Ultra 24 magos CPU, 60 magos GPU, 64GB RAM, 1024GB SSD
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Ventilátor bazár /NZXT/CORSAIR/LIAN LI/DEEPCOOL/ZALMAN/120MM/140MM/VEZÉRLŐK/LED KIT-ek/
- Dell 14 Latitude 5430 FHD IPS i5-1245U vPro 4.4Ghz 10mag 16GB 512GB Intel Iris XE Win11 LTE Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


