Hirdetés
- Örömkönnyek és üres kezek a TriFold startjánál
- Milyen okostelefont vegyek?
- Xiaomi Mi 9T Pro - tizenegyes!
- Google Pixel topik
- Apple iPhone 15 Pro Max - Attack on Titan
- Sony Xperia 5 IV - házon belüli siker
- Xiaomi 15 Ultra - kamera, telefon
- Apple iPhone 17 Pro Max – fennsík
- Szívós, szép és kitartó az új OnePlus óra
- Amazfit T-Rex 3 Pro – világítós dínó
Ú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
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- Amazon Alexa
- Trollok komolyan
- Lakáshitel, lakásvásárlás
- Hobby elektronika
- Milyen autót vegyek?
- Linux kezdőknek
- Kábel nélkül a Sapphire VGA-val
- Kerékpárosok, bringások ide!
- Debrecen és környéke adok-veszek-beszélgetek
- További aktív témák...
- Gamer PC - Ryzen 7 5800X RX 7800 xt, 32GB ddr4, 1TB Nvme
- XFX Radeon Speedster QICK 308 RX 6600 XT GDDR6 8GB 128bit
- Gigabyte Radeon 5700XT OC 8Gb eladó
- Lenovo IdeaPad 3 FELTURBÓZVA! 8GB RAM, IPS kijelző, 256 GB NVMe SSD, Win 11 Pro
- Ryzen 5 7500X3D +hűtött VRM-es B650M lap +16-32GB DDR5 RAM! GAR/SZÁMLA (a Te nevedre kiállítva)!
- 182 - Lenovo Legion 5 (15IRX10) - Intel Core i9-14900HX, RTX 5070 (ELKELT)
- Sony PS3/PS4/PS5 és kézikonzolok Okosítása és Szoftveres szintű javítása - RÉSZLETEK A LEÍRÁSBAN
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3732
- iKing.Hu-Nothing Phone 3a Pro Grey Glyph stílus, 3 optikai zoom 12/256 GB -3 hónap garancia
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RX 7600 8GB ZALMAN i3 NEO be quiet! 700W
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


