தொகுதி பாடங்கள் (4/4)
பரிவர்த்தனைகள்: அனைத்தும் அல்லது எதுவும் இல்லை
ஒரு பரிவர்த்தனை என்பது தரவுத்தளம் கருதும் செயல்பாடுகளின் குழுவாகும்
ஒற்றை அலகு: ஒன்று அவை அனைத்தும் வெற்றி பெறுகின்றன, அல்லது அவர்களில் யாரும் வெளியேற மாட்டார்கள் a
தடயம். ஒரு வரிசையின் போது முரண்பாடுகளிலிருந்து உங்களைப் பாதுகாத்துக் கொள்வது இதுதான்
UPDATE/INSERT/DELETE நிலையானதாக இருக்க வேண்டும்.
தொடரியல்
BEGIN; -- apri la transazione
UPDATE …;
INSERT …;
DELETE …;
SELECT …; -- puoi anche solo leggere
COMMIT; -- conferma tutte le modifiche
-- oppure
ROLLBACK; -- annulla tutte le modifiche, come se nulla fosseBEGIN மற்றும் COMMIT இடையே உள்ள அனைத்தும் அணு: வேறு இணைப்பு இல்லை
இடைநிலை நிலையைப் பார்க்கிறது. நிரல் செயலிழந்தால் அல்லது செயல்பட்டால்
ROLLBACK, தரவுத்தளம் BEGINக்கு முன்பு இருந்ததைப் போலவே இருக்கும்.
உன்னதமான காட்சி: பரிமாற்றம்
நியமன உதாரணம் என்பது தயாரிப்புகளுக்கு இடையேயான பங்கு பரிமாற்றம் (அல்லது பணம்
கணக்குகளுக்கு இடையே பரிமாற்றம்): இரண்டு UPDATEகள் வெற்றிபெற வேண்டும் ஒன்றாக,
ஒன்று ஆம் மற்றொன்று இல்லை.
BEGIN;
UPDATE products SET stock = stock - 1 WHERE id = 1;
UPDATE products SET stock = stock + 1 WHERE id = 2;
COMMIT;இரண்டாவது UPDATE தோல்வியடைந்தால் (எ.கா. CHECK கட்டுப்பாடு பிழை), a
ROLLBACK தயாரிப்பு 1 இன் இருப்பை அதன் அசல் மதிப்பிற்கு மீட்டமைக்கிறது.
பின்னடைவு: DBA இன் பிழைத்திருத்தி
BEGIN;
UPDATE customers SET city = 'X' WHERE id = 1;
SELECT first_name, city FROM customers WHERE id = 1; -- "vedo come è cambiato"
ROLLBACK;உண்மையான தரவுகளில் UPDATE **முயற்சி செய்வதற்கு மிகவும் பயனுள்ள முறை: நீங்கள்
அதை இயக்கவும், அதே பரிவர்த்தனையில் SELECT மூலம் முடிவைச் சரிபார்க்கவும், மற்றும்
அது உங்களை நம்ப வைக்கவில்லை என்றால், நீங்கள் ROLLBACK — தரவுத்தளம் சரியாக உள்ளது
அது முன்பு இருந்தது.
சேவ்பாயிண்ட்: பகுதி திரும்பப் பெறுதல்
பரிவர்த்தனையின் உள்ளே நீங்கள் இடைநிலை புள்ளிகளை உருவாக்கலாம்:
BEGIN;
UPDATE customers SET city = 'A' WHERE id = 1;
SAVEPOINT step1;
UPDATE customers SET city = 'B' WHERE id = 2;
-- mi sono accorto che il secondo UPDATE è sbagliato:
ROLLBACK TO SAVEPOINT step1;
COMMIT; -- solo il primo UPDATE viene confermato30 வினாடிகளில் ACID
பரிவர்த்தனைகள் ACID பண்புகளுக்கு உத்தரவாதம்:
- A tomicity - அனைத்து அல்லது எதுவும் இல்லை;
- C நிலைத்தன்மை - பரிவர்த்தனையின் தொடக்கத்திலும் முடிவிலும் கட்டுப்பாடுகள் திருப்திகரமாக இருக்கும்;
- Isolation — ஒரே நேரத்தில் நடக்கும் பரிவர்த்தனைகள் இடைநிலை நிலைகளைக் காணாது (பல்வேறு "நிலைகளில்");
- Durability — ஒரு வெற்றிகரமான
COMMITவிபத்து ஏற்பட்டாலும் இழக்கப்படாது.
உங்கள் முறை
ஒரு பரிவர்த்தனையில்: தயாரிப்பு 1 இன் பங்கை 1 ஆல் குறைக்கவும் மற்றும் தயாரிப்பின் பங்கை 1 ஆல் அதிகரிக்கவும் 2. BEGIN உடன் திறந்து COMMIT உடன் மூடவும்.
குறிப்பைக் காட்டு
குறிப்பு பங்கு - 1 மற்றும் பங்கு + 1 அந்தந்த SET உட்பிரிவுகளில்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
பரிவர்த்தனையைத் திறந்து, வாடிக்கையாளரின் நகரத்தை ஐடி=1 உடன் 'Sperimentale' ஆகப் புதுப்பிக்க முயற்சிக்கவும், பின்னர் ROLLBACK மூலம் செயல்பாட்டை ரத்து செய்யவும். இறுதியில் வாடிக்கையாளர் 1 நகரமானது அசல் நகரமாக இருக்க வேண்டும் ('மிலானோ').
குறிப்பைக் காட்டு
ROLLBACK ஆனது BEGIN இலிருந்து செய்யப்படும் ஒவ்வொரு மாற்றத்தையும் ரத்து செய்கிறது.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்