- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Megkaptuk az első hivatalos fotókat a Honor Magic V6-ról
- Honor Magic5 Pro - kamerák bűvöletében
- Tényleg felkerült a 200 megapixel egy hajlítható telefonra
- Mobil flották
- Utcakép banánnal: félrecsúszhat a Google Térkép fókusza
- Óriásakkus telefon jöhet a Vivotól is
- Google Pixel topik
Ú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
- Laptop ramok DDR5 8Gb 4800Mhz SK Hynix / Samsung, akár nagy tételben is, mennyiségi kedvezmény van!
- Új Samsung Galaxy S25 128/8GB 3év Navy garancia!
- MacBook Pro M1 Max 2021 14" col 32GB ram 1TB SSD
- ASUS RTX5090 - TUF-RTX5090-32G-GAMING /ÚJ, BONTATLAN, MAGYAR KISKER GARANCIA, NEM CÉGES VÁSÁRLÁS/
- HP EliteMini 800 G9 vPro - i5-14500T 14C/20T - 16GB DDR5 5600 - 256GB SSD - BILL+EGÉR
- Apple iPhone 15 Pro / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku:83%
- AKCIÓ! Huawei Watch 4 Pro eSIM okosóra garanciával hibátlan működéssel
- Lenovo Thinkpad X230 TABLET,12.5",HD IPS KIJELZŐ,i5-3320M,4GB DDR3,320GB HDD,WIN10
- Apple iPhone 14 Pro 128GB,Újszerű,Dobozaval,12 hónap garanciával
- Csere-Beszámítás! Acer Nitro 5 AN515-57! I7 11800H / RTX 3050Ti / 16GB DDR4 / 512GB Nvme SSD!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

