Hirdetés
- Videós, mozgóképes topik
- Vezeték nélküli fejhallgatók
- Hard Disk Sentinel: S.M.A.R.T., okosan
- Noctua+Asetek: egyre közelebb a Noctua első vízhűtése
- Melyik tápegységet vegyem?
- Milyen billentyűzetet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Házimozi haladó szinten
- Hobby elektronika
- Milyen egeret válasszak?
Ú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
- 50 év után kilőtt négy űrhajós a Holdra
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Videós, mozgóképes topik
- Google Pixel topik
- Filmvilág
- Kerékpárosok, bringások ide!
- Allegro vélemények - tapasztalatok
- AliExpress tapasztalatok
- Vezeték nélküli fejhallgatók
- Egyre több tényező hajtja felfelé az árakat, és hol van még a vége?
- További aktív témák...
- újszerű iPhone Air 256GB space black asztrofekete független Apple 3 év garancia iStyle vásárlás
- Armani Acqua di Giò Profondo Parfum 50ml
- MacBook Air M3 256GB SSD space gray asztroszürke Apple magyar 2 év AppleCare garancia
- újszerű iPad Mini (6. generációs) 64GB Wi-Fi space gray asztroszürke ajándék tok és fólia
- Yves Saint Laurent Y EDP 60ml
- iPhone X 64GB 100% (3hónap Garancia)
- Mega Akció! Csere-Beszámítás! Gigabyte Aorus 17H! I7 13700H / RTX 4080 / 32GB DDR5 / 1TB SSD!
- Lenovo ThinkPad X1 Carbon Gen 10 - 27% ÁFÁS (0332)
- Lenovo ThinkPad E15 Gen 2 15,6" - i7 1165G7, 16GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- GYÖNYÖRŰ iPhone SE 2022 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS4535, 100% AKKSI
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

