Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π‘Π»ΠΎΠ³ ΠΎ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡΡ… ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π΅ Π² Π•Π²Ρ€ΠΎΠΏΠ΅

ΠŸΠ°Ρ€ΠΊ ΠŸΠΎΡ€Ρ‚-АвСнтура: ΠΊΡ‚ΠΎ Π±Ρ‹Π», Ρ‡Ρ‚ΠΎ посовСтуСтС?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΠ°Ρ€ΠΊ ΠŸΠΎΡ€Ρ‚-АвСнтура: ΠΊΡ‚ΠΎ Π±Ρ‹Π», Ρ‡Ρ‚ΠΎ посовСтуСтС?

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Foxy Β» 17 ΠΎΠΊΡ‚ 2011, 15:02

Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ Ρƒ российских ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ туристов ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€ΠΊ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΉ ΠŸΠΎΡ€Ρ‚-АвСнтура, располоТСнный ΠΏΠΎΠ΄ Π‘Π°Π»ΠΎΡƒ.

МногиС ΠΈΠ· посСтитСлСй нашСго сайта Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ ΠΏΠΎΠ±Ρ‹Π²Π°Π»ΠΈ ΠΈ Π½Π°Ρ…Π²Π°Π»ΠΈΠ²Π°ΡŽΡ‚ Π°Ρ‚Ρ‚Ρ€Π°ΠΊΡ†ΠΈΠΎΠ½Ρ‹, Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠΎΡƒ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚.ΠΏ. ОсобСнно ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ ΡˆΠΎΡƒ Ρ„ΠΎΠ½Ρ‚Π°Π½ΠΎΠ², ΡˆΠΎΡƒ Π±Π°Ρ€Π°Π±Π°Π½Ρ‰ΠΈΠΊΠΎΠ², ΡˆΠΎΡƒ экзотичСских ΠΏΡ‚ΠΈΡ†
А ΠΊΠ°ΠΊΠΈΠ΅ прСдставлСния ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΈΡΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΠΌ?

И Π²ΠΎΡ‚ Π΅Ρ‰Π΅ Ρ‡Ρ‚ΠΎ. ΠžΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· посСтитСлСй нашСго сайта ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ»Π΅Ρ‚Ρ‹ ΠŸΠΎΡ€Ρ‚-АвСнтуры Π΄Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° бСсплатный Π²Ρ…ΠΎΠ΄ Π² ΠΌΡƒΠ·Π΅ΠΈ Π’Π°Ρ€Ρ€Π°Π³ΠΎΠ½Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ скидки Π² ΠΌΡƒΠ·Π΅Π΅ Π“Π°ΡƒΠ΄ΠΈ Π² РСусС. ΠšΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅ ΠΎΠ± этом извСстно?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Re: ΠŸΠ°Ρ€ΠΊ ΠŸΠΎΡ€Ρ‚-АвСнтура: ΠΊΡ‚ΠΎ Π±Ρ‹Π», Ρ‡Ρ‚ΠΎ посовСтуСтС?

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ QuiQui Β» 27 ноя 2011, 15:47

Π‘Ρ‹Π»Π° Π² этом ΠΏΠ°Ρ€ΠΊΠ΅ 2 Ρ€Π°Π·Π°, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎΠΊΡƒΠΏΠ°Π»Π° Π±ΠΈΠ»Π΅Ρ‚ Π½Π° 2 дня. Π‘ΠΈΠ»Π΅Ρ‚ Π±Ρ€Π°Π»Π° Ρƒ ΠΎΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π³ΠΈΠ΄Π°. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ дСшСвлС, ΠΈ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² кассу. Как Π±Ρ‹Π»ΠΎ сказано Π² описании, Ссли ΠΏΠΎΠΊΡƒΠΏΠ°Π΅ΡˆΡŒ Π±ΠΈΠ»Π΅Ρ‚ Π½Π° 2 дня, Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π² ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π½ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ пойдСшь, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ± это Π±Ρ‹Π»ΠΈ Π΄Π²Π° дня подряд. Но стоит ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² субботу ΠΈ Π² Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ Ρ‚Π°ΠΌ Π΅Ρ‰Π΅ большС посСтитСлСй Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ΅Π·ΠΆΠ°ΡŽΡ‚ мСстныС сСмьи с Π΄Π΅Ρ‚ΡŒΠΌΠΈ.
Π§Ρ‚ΠΎ касаСтся самого ΠΏΠ°Ρ€ΠΊΠ°, Π½Π° Π²Ρ…ΠΎΠ΄Π΅, Π·Π° статуСй дятла Π’ΡƒΠ΄Π΄ΠΈ Π’Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΡƒΡ€Π½ΠΈΠΊΠ΅Ρ‚Ρ‹, ΠΈ сразу ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π’Π°ΡˆΠΈΠΌΠΈ Π³Π»Π°Π·Π°ΠΌΠΈ окаТСтся стСнд с Π±Ρ€ΠΎΡˆΡŽΡ€Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° ΠΊΠ°Ρ€Ρ‚Π° ΠΏΠ°Ρ€ΠΊΠ°. Π‘Ρ€ΠΎΡˆΡŽΡ€Ρ‹ прСдставлСны Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π° русском. ΠšΠ°Ρ€Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ. Π’ самой Π±Ρ€ΠΎΡˆΡŽΡ€Π΅ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΏΠ°Ρ€ΠΊΠ°, пСрСчислСны всС названия Π°Ρ‚Ρ‚Ρ€Π°ΠΊΡ†ΠΈΠΎΠ½ΠΎΠ², с ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡ… Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚, интСрСсная информация ΠΎ ΠΏΠ°Ρ€ΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… акциях. Π’Π°ΠΊ ΠΆΠ΅ Ρ‚Π°ΠΌ Π΄Π°Π½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΡˆΠΎΡƒ, ΠΈΡ… врСмя ΠΈ мСсто провСдСния.

МногиС Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ПА Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΄Π΅Ρ‚Π΅ΠΉ. Π­Ρ‚ΠΎ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅! Π’Π°ΠΌ найдутся развлСчСния для людСй любого возраста. Аттракционы, ΡˆΠΎΡƒ, прСдставлСния, развлСчСния, ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹, Π΄Π° ΠΈ сама атмосфСра, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π’Ρ‹ большС Π½ΠΈΠ³Π΄Π΅ Π½Π΅ встрСтитС, оставляСт Π½Π΅ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ эмоции ΠΈ впСчатлСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ транзакция

Вранзакция β€” это Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π”), ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½Ρƒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ ΠΏΠ°Ρ‡ΠΊΡƒ.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Π±Π°Π·Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ трСбования ACID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ‚ΠΎΠΌ числС финансовых Π΄Π°Π½Π½Ρ‹Ρ… =) ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡ… ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚.

Π― расскаТу ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ транзакция. Как Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, ΠΈ ΠΊΠ°ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ. И ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ β€” Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. И Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ написании запросов ΠΊ Π±Π°Π·Π΅ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ осознанноС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ происходит Ρ‚Π°ΠΌ, ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ, ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ этот ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ послС Π°ΠΏΠ΄Π΅ΠΉΡ‚Π°.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ транзакция

Вранзакция β€” это Π°Ρ€Ρ…ΠΈΠ² для запросов ΠΊ Π±Π°Π·Π΅. Он Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ваши Π΄Π°Π½Π½Ρ‹Π΅ благодаря ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ «всё, ΠΈΠ»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎΒ».

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³Ρƒ 10 Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ² Π² мСссСндТСрС. КакиС Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

ΠšΠΈΠ½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΈΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π‘Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ… Π² Π°Ρ€Ρ…ΠΈΠ² ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ².

Π’Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ особой Π½Π΅Ρ‚. Но Ρ‡Ρ‚ΠΎ, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ? Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ оборвСтся Π½Π° сСрСдинС, сСрвСр ΡƒΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π΅Π±ΡƒΡ‚ ΠΈΠ»ΠΈ просто выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ваш Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ 9 Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠ΄ΠΈΠ½.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ. НСт ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… состояний. Или ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» всё, ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½ΠΈΡ‡Π΅Π³ΠΎ. Но Π·Π°Ρ‚ΠΎ Ссли ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, Π²Ρ‹ снова ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π΅Ρ‚Π΅ сообщСниС. И Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ всС Ρ„Π°ΠΉΠ»ΠΈΠΊΠΈ Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ придСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Β«Π½Π΅ потСрялся Π»ΠΈ ΠΊΡ‚ΠΎΒ».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Казалось Π±Ρ‹, Π½Ρƒ Π½Π΅Π΄ΠΎΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ„Π°ΠΉΠ»ΠΈΠΊ, Ρ‡Ρ‚ΠΎ с Ρ‚ΠΎΠ³ΠΎ? А Ссли это ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ? Если это Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΈΠΊΠΈ? НапримСр, для Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ. ΠŸΠΎΡ‚Π΅Ρ€ΡΠ» ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ»ΠΈΠΊ? Π—Π½Π°Ρ‡ΠΈΡ‚, допустил ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ для Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ. Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ³Ρ€Π΅Π±Π΅ΡˆΡŒ ΡˆΡ‚Ρ€Π°Ρ„ ΠΈ большиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹! НСт, спасибо, Π»ΡƒΡ‡ΡˆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ!

И получаСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π±Π΅ Π½Π°Π΄ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ Ρƒ отправитСля:

β€” Π’Ρ‹ ΠΌΠ½Π΅ сколько Ρ„Π°ΠΉΠ»ΠΎΠ² посылал?

β€” Π”Π°? Π£ мСня Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 9. Π”Π°Π²Π°ΠΉ ΠΈΡΠΊΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ продолбался.

И сидитС, сравниваСтС ΠΏΠΎ названиям. А Ссли Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ² 100 ΠΈ потСряно 2 ΡˆΡ‚ΡƒΠΊΠΈ? А названия Ρƒ Π½ΠΈΡ… вовсС Π½Π΅ Β«ΠžΡ‚Ρ‡Π΅Ρ‚ 1Β», Β«ΠžΡ‚Ρ‡Π΅Ρ‚ 2Β» ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π° Β«hfdslafebx63542437457822nfhgeopjgrev0000444666589.xmlΒ» ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅. Π£ΠΆ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²! Π’ΠΎΠ³Π΄Π° Ρ‚Ρ‹ ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ всё ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ», ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈ дСлаСшь ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ.

Π’Π°ΠΊ Π²ΠΎΡ‚! Вранзакция β€” это Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π°Ρ€Ρ…ΠΈΠ² для запросов. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ «всё, ΠΈΠ»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎΒ». Или Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π» Π² ΠΎΠ΄Π½Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½.

Допустим, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅ всС дСньги с ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Выглядит это «Π²Π½ΡƒΡ‚Ρ€ΠΈ» систСмы ΠΊΠ°ΠΊ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

delete from счСт1 where счСт = счСт 1

insert into счСт2 values (‘сумма’)

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ «всё ΠΈΠ»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎΒ» Ρ‚ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠ±ΠΈΠ΄Π½ΠΎ, Ссли Π±Ρ‹ дСньги со счСта1 списались, Π½ΠΎ Π½Π° счСт2 Π½Π΅ поступили. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ соСдинСниС ΠΎΠ±ΠΎΡ€Π²Π°Π»ΠΎΡΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ Π² Π½ΠΎΠΌΠ΅Ρ€Π΅ счСта ΠΎΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»ΠΈΡΡŒ ΠΈ систСма Π²Ρ‹Π΄Π°Π»Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Но благодаря объСдинСнию запросов Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки зачислСния ΠΌΡ‹ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ списания. Π”Π΅Π½ΡŒΠ³ΠΈ снова Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ Π½Π° счСт 1!

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎ-Π½Π°ΡƒΡ‡Π½ΠΎΠΌΡƒ, Ρ‚ΠΎ транзакция β€” упорядочСнноС мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, пСрСводящих Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ согласованного состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. БогласованноС состояниС β€” это состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ систСмы. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρƒ нас Π½Π΅ остаСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ баланс послС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π΄Π΅Π½Π΅Π³, Π½ΠΎΠΌΠ΅Ρ€ счСта Π½Π΅ «зависаСт Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅Β», Π½Π΅ привязанный ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ, ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, сначала Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ соСдинСниС с Π½Π΅ΠΉ. Π­Ρ‚ΠΎ называСтся ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ (ΠΎΡ‚ Π°Π½Π³Π». connection, соСдинСниС). ΠšΠΎΠ½Π½Π΅ΠΊΡ‚ β€” это просто Ρ‚Ρ€ΡƒΠ±Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ посылаСм запросы.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы Π² ΠΎΠ΄Π½Ρƒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ ΠΏΠ°Ρ‡ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π½Π°Π΄ΠΎ:

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π·Π°ΠΊΡ€Ρ‹Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, Ρ‚Ρ€ΡƒΠ±Π° освободилась. И Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ.

МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ соСдинСниС с Π‘Π”. И Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ дСйствиС ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅. Но эффСктивнСС ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚Π° β€” тяТСлая опСрация, долгая.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ настройкС прилоТСния администратор ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько максимально ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… соСдинСний с Π±Π°Π·ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ называСтся ΠΏΡƒΠ» соСдинСний β€” количСство свободных Ρ‚Ρ€ΡƒΠ±.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π±Π΅Ρ€Π΅Ρ‚ соСдинСниС ΠΈΠ· ΠΏΡƒΠ»Π° ΠΈ отправляСт ΠΏΠΎ Π½Π΅ΠΌΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ транзакция закрываСтся (Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ½Π° ΠΏΡ€ΠΎΡˆΠ»Π° ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΠ»Π°ΡΡŒ), соСдинСниС возвращаСтся Π² ΠΏΡƒΠ», ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ бизнСс-опСрация.

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ

Зависит ΠΎΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Oracle транзакция открываСтся сама, ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. А Π² MySql Π½Π°Π΄ΠΎ явно ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«start transactionΒ».

Как Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ

Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

COMMIT β€” ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌ всС внСсСнныС измСнСния;

ROLLBACK β€” ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΡ…;

И вся Ρ„ΠΈΡˆΠΊΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° сначала примСняСт запрос Β«Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΒ», Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π² Π±Π°Π·Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ². Π’Ρ‹ моТСшь ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ запрос ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π±Π°Π·Ρƒ, Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ сохраняя.

НапримСр, я ΠΏΠΈΡˆΡƒ запрос:

Запрос Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли я сдСлаю select ΠΈΠ· этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, прям Ρ‚ΡƒΡ‚ ΠΆΠ΅, ΠΏΠΎΠ΄ своим запросом β€” ΠΎΠ½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Иванова! Π― ΠΌΠΎΠ³Ρƒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ своСго запроса.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Но! Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ графичСский интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Иванова ΠΌΡ‹ Ρ‚Π°ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ. И Π΄Π°ΠΆΠ΅ Ссли ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π² sql developer (ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Π±Π°Π·Π΅) ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ Ρ‚Π°ΠΌ свой select β€” Иванова Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

А всС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ я Π½Π΅ сдСлала ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»Π° измСнСния:

Π― ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ строк. Но Ссли я Π·Π°ΠΊΡ€ΠΎΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ sql developer, Π½Π΅ сдСлав ΠΊΠΎΠΌΠΌΠΈΡ‚, всС эти измСнСния ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ.

Когда я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»Π°ΡΡŒ с Π±Π°Π·ΠΎΠΉ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, я часто допускала Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ: ΠΏΠΎΠ΄ΠΏΡ€Π°Π²Π»ΡŽ Π΄Π°Π½Π½Ρ‹Π΅ Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» для провСдСния тСста, Π° Π² систСмС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ мСняСтся! ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π±Ρ‹Π»Π°.

На самом Π΄Π΅Π»Π΅ это ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π’Π΅Π΄ΡŒ Ссли Ρ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΡˆΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. НапримСр, удаляСм тСстовыС Π΄Π°Π½Π½Ρ‹Π΅. Написали ΠΊΡƒΡ‡Ρƒ условий ΠΈΠ· сСрии:

И фамилия = «ВСстовый»

Π£Π΄Π°Π»ΠΈΠ»ΠΈ. Π”Π΅Π»Π°Π΅ΠΌ select count β€” ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ количСство записСй Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. А Ρ‚Π°ΠΌ вмСсто ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° строк ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 100 тысяч! Если Π±Π°Π·Π° Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ, Ρ‚ΠΎ это ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Врядли Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΎ Π‘Π’ΠžΠ›Π¬ΠšΠž тСстовых записСй.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ свой запрос, Π° ΠΌΡ‹ Ρ‚Π°ΠΌ Π³Π΄Π΅-Ρ‚ΠΎ ошиблись! ВмСсто «И» написали Β«Π˜Π›Π˜Β», ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π΅Ρ‰Π΅. Упс. Π₯ΠΎΡ€ΠΎΡˆΠΎ Π΅Ρ‰Π΅ измСнСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ успСли. ВмСсто ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄Π΅Π»Π°Π΅ΠΌ rollback.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π’ΡƒΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос β€” Π° Π·Π°Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ ROLLBACK? Π’Π΅Π΄ΡŒ Π±Π΅Π· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сохранится. МоТно просто Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΈ всё. Но Ρ‚ΠΎΠ³Π΄Π° транзакция Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² нСпонятном статусС. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Π΅ просто Ρ‚Π°ΠΊ Π½ΠΈΠΊΡ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ тСбя Π½Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚.

Или Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Нафигачили ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π³ΠΎΡ€ΠΎΠ΄Π° с 495 Π½Π° 499;

Но Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ select Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° стала нСконсистСнтной. А ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ «Ай, Π΄Π° Π»Π°Π΄Π½ΠΎ, ΠΊΠΎΠΌΠΌΠΈΡ‚ Ρ‚ΠΎ Π½Π΅ сдСлали? Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ½ΠΎ ΠΈ Π½Π΅ сохранится». И Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ соСдинСниС Π² ΠΏΡƒΠ».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ опСрация бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ Π±Π΅Ρ€Π΅Ρ‚ это самоС соСдинСниС ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π² Π½Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. А ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ относился ΠΊ Ρ‚Π΅ΠΌ 3 опСрациям, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Но ΠΌΡ‹ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΈ 10 Π΄Ρ€ΡƒΠ³ΠΈΡ… β€” Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ полСнились. Π’Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π±Π°Π·Ρƒ нСконсистСнтной.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ сразу сдСлайтС ΠΎΡ‚ΠΊΠ°Ρ‚. Π—Π΄ΠΎΡ€ΠΎΠ²Π΅ΠΉ систСма Π±ΡƒΠ΄Π΅Ρ‚!

Π˜Ρ‚ΠΎΠ³ΠΎ

Вранзакция β€” Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½Ρƒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ ΠΏΠ°Ρ‡ΠΊΡƒ.

Одной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ всСгда соотвСтствуСт ΠΎΠ΄Π½Π° транзакция, Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… insert ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. ).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΊ Π±Π°Π·Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ соСдинСниС с Π½Π΅ΠΉ. Или ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ (Π°Π½Π³Π» connection) β€” это просто Ρ‚Ρ€ΡƒΠ±Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ запросы. Π£ Π±Π°Π·Ρ‹ Π΅ΡΡ‚ΡŒ ΠΏΡƒΠ» соСдинСний β€” мСсто, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ любоС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ½ΠΈ Ρ‚Π°ΠΌ всС свободныС.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ½Π° открываСтся сама. А Π²ΠΎΡ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

COMMIT β€” ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌ всС внСсСнныС измСнСния;

ROLLBACK β€” ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΡ…;

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

ДСлая ΠΊΠΎΠΌΠΈΡ‚, ΠΌΡ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ΄Π½Ρƒ бизнСс-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ Π² ΠΏΡƒΠ» Π±Π΅Π· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ просто освобоТдаСм Ρ‚Ρ€ΡƒΠ±Ρƒ для Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ бизнСс-опСрация Π±Π΅Ρ€Π΅Ρ‚ эту Ρ‚Ρ€ΡƒΠ±Ρƒ ΠΈ Ρ„ΠΈΠ³Π°Ρ‡ΠΈΡ‚ Π² Π½Π΅Π΅ свои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ rollback, Ссли измСнСния ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ. НС ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚Π΅ ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ соСдинСниС Π² ΠΏΡƒΠ»? Π•Π³ΠΎ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈ сдСлаСт ΠΊΠΎΠΌΠΌΠΈΡ‚. Π‘Π²ΠΎΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ Π²Π°ΡˆΠΈΡ…, Π½Π΅ΠΎΡ‚ΠΊΠ°Ρ‡Π΅Π½Π½Ρ‹Ρ….

НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ соСдинСниС с Π±Π°Π·ΠΎΠΉ (ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚) ΠΈ саму Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. ΠšΠΎΠ½Π½Π΅ΠΊΡ‚ β€” это просто Ρ‚Ρ€ΡƒΠ±Π°, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (update, delete…) ΠΌΡ‹ посылаСм ΠΏΠΎ Ρ‚Ρ€ΡƒΠ±Π΅, старт Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ commit /rollback β€” это Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΎΠ΄Π½Ρƒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ ΠΏΠ°Ρ‡ΠΊΡƒ.

Π‘ΠΌ Ρ‚Π°ΠΊΠΆΠ΅:

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ β€” Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΉΡ‚ΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² T-SQL – основы для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ всСх посСтитСлСй сайта Info-Comp.ru! Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ с Π’Π°ΠΌΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ языка T-SQL, Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния транзакциями ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² T-SQL.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°! T-SQL – это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка SQL, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² Microsoft SQL Server. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± этом ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ – Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ T-SQL. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² T-SQL

Вранзакция – это ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ (инструкций), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅, ΠΏΡ€ΠΈ этом Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… всС внСсСнныС измСнСния Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° постоянной основС, ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, Ρ‚.Π΅. всС измСнСния, внСсСнныС любой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, входящСй Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ инструкция Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ с ошибкой, Ρ‚ΠΎ всС, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ отмСняСтся, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈ просто Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ бизнСс Π»ΠΎΠ³ΠΈΠΊΡƒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Microsoft SQL Server, которая ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг логичСски связан с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ шагами.

По сути каТдая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ инструкция языка T-SQL являСтся Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ, это называСтся «АвтоматичСскоС принятиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉΒ» ΠΈΠ»ΠΈ «НСявныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΒ», Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈ явныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, это ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сами явно Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ явно Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅, Ρ‚.Π΅. Π΄Π΅Π»Π°Π΅ΠΌ всС это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наглядно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ использования Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

Допустим, Ρƒ Вас Π΅ΡΡ‚ΡŒ хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая осущСствляСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ срСдств с ΠΎΠ΄Π½ΠΎΠ³ΠΎ счСта Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, соотвСтствСнно, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρƒ Вас Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, снятиС срСдств, ΠΈ зачислСниС срСдств, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π²Π΅ инструкции UPDATE.

Но Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибка ΠΈ инструкция Π½Π΅ выполнится. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ пСрвая инструкция снимаСт дСньги, ΠΎΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, вторая инструкция зачисляСт дСньги ΠΈ Π² Π½Π΅ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка, Π±Π΅Π· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ снятыС дСньги просто ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ зачислСны.

Π§Ρ‚ΠΎΠ±Ρ‹ этого Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, всС SQL инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ логичСски Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, связанныС с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ срСдств, ΠΏΠΈΡˆΡƒΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΈ Ρ‚ΠΎΠ³Π΄Π°, Ссли наступит подобная ситуация, всС измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹, Ρ‚.Π΅. дСньги вСрнутся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° счСт.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΎΠΌ ошибок TRY…CATCH, ΠΈΠ½Ρ‹ΠΌΠΈ словами, Π’Ρ‹ отслСТиваСтС ошибки Π² Π’Π°ΡˆΠ΅ΠΌ Π±Π»ΠΎΠΊΠ΅ инструкций ΠΈ Ссли ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ, Ρ‚ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ CATCH Π’Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, Ρ‚.Π΅. отмСняСтС всС измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π΄ΠΎ возникновСния ошибки Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ – это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ обСспСчСния цСлостности Π΄Π°Π½Π½Ρ‹Ρ….

Бвойства Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Π£ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ 4 ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹Ρ… свойства:

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния транзакциями Π² T-SQL

Π’ T-SQL для управлСния транзакциями ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² T-SQL

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° языкС T-SQL.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

Но сначала Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСстовыС Π΄Π°Π½Π½Ρ‹Π΅ для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² T-SQL

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас всСго Π΄Π²Π΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ допустим, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ взаимосвязаны, Ρ‚.Π΅. ΠΎΠ½ΠΈ ΠΎΠ±Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ вмСстС ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ вмСстС.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ эти инструкции ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ BEGIN TRANSACTION, Π΄Π°Π»Π΅Π΅ пишСм всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ.

ПослС этого ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ COMMIT TRANSACTION ΠΌΡ‹ сохраняСм всС внСсСнныС измСнСния.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ρƒ нас Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок, всС инструкции Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. Как Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, транзакция Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈ всС измСнСния сохранСны Π½Π° постоянной основС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ COMMIT TRANSACTION.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Однако, Ссли Π² любой ΠΈΠ· инструкций Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка, транзакция Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, ΠΈ всС измСнСния Π½Π΅ сохранятся.

ΠŸΡ€ΠΈ этом, стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ошибки с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ошибки, связанныС с Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Π½Π΅ Π²Π»Π΅ΠΊΡƒΡ‚ Π·Π° собой автоматичСский ΠΎΡ‚ΠΊΠ°Ρ‚ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ внСсСнных Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ, поэтому всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ SET XACT_ABORT ON, ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок (допускаСтся ΠΈ совмСстноС использованиС).

НапримСр, Ссли Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ инструкции ΠΌΡ‹ попытаСмся Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² столбСц Price ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ тСкстовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Ρƒ нас Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка, ΠΈ измСнСния, внСсённыС ΠΏΠ΅Ρ€Π²ΠΎΠΉ инструкциСй, Π½Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° постоянной основС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² T-SQL с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок

Π’ языкС T-SQL сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок – конструкция TRY… CATCH.

Π­Ρ‚Ρƒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отслСТивания появлСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ошибок Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π² случаС появлСния Ρ‚Π°ΠΊΠΈΡ… ошибок ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π±Π»ΠΎΠΊ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ BEGIN TRANSACTION, Π΄Π°Π»Π΅Π΅ пишСм наши инструкции, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ ΠΆΠ΅ самыС Π΄Π²Π΅ инструкции UPDATE.

ПослС этого Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π±Π»ΠΎΠΊ TRY, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π±Π»ΠΎΠΊ CATCH, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² случаС возникновСния ошибки ΠΌΡ‹ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ всС измСнСния ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ROLLBACK TRANSACTION. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ Π½Π°ΡˆΡƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ RETURN.

Если ошибок Π½Π΅Ρ‚, Ρ‚ΠΎ Π² Π±Π»ΠΎΠΊ CATCH ΠΌΡ‹, соотвСтствСнно, Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ ΠΈ Ρƒ нас выполнится ΠΊΠΎΠΌΠ°Π½Π΄Π° COMMIT TRANSACTION, которая сохранит всС измСнСния.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅Ρ‚ ошибок, поэтому транзакция Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

А Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ допускаСм ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ инструкции. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² Π±Π»ΠΎΠΊ CATCH, Π³Π΄Π΅ ΠΌΡ‹ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ всС измСнСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΈ описаниС ошибки ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ всю ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ RETURN.

ΠŸΠ΅Ρ€Π²Π°Ρ инструкция ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π΅Π΅ измСнСния Π½Π΅ Π±Ρ‹Π»ΠΈ сохранСны, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ вторая инструкция Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° с ошибкой.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

Π£Ρ€ΠΎΠ²Π½ΠΈ изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² T-SQL

Π’ΠΎ врСмя выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ производятся измСнСния, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ процСсс измСняСт Π΄Π°Π½Π½Ρ‹Π΅, Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ…. Π’ SQL сСрвСрС сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ (ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚) Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ врСмя выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π£ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π΅ΡΡ‚ΡŒ нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ изоляции, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСт ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ рассмотрим ΡƒΡ€ΠΎΠ²Π½ΠΈ изоляции.

READ UNCOMMITTED

Π‘Π°ΠΌΡ‹ΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ SQL сСрвСр Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ «грязноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Β». Грязным Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ считываниС Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ½Ρ‹ΠΌΠΈ словами, Ссли транзакция, которая измСняСт Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, другая транзакция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, хотя ΠΎΠ½ΠΈ Π΅Ρ‰Π΅ Π½Π΅ зафиксированы ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ.

READ COMMITTED

Π­Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΡƒΠΆΠ΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ грязноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС всС процСссы, Π·Π°ΠΏΡ€ΠΎΡΠΈΠ²ΡˆΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ подтвСрТдСния фиксации Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SQL сСрвСром.

REPEATABLE READ

На Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ изоляции запрСщаСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ двумя опСрациями чтСния Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ происходит Π·Π°ΠΏΡ€Π΅Ρ‚ Π½Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Β«Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Β» ΠΈΠ»ΠΈ «нСсогласованный Π°Π½Π°Π»ΠΈΠ·Β». Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния, Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΈΡ… нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π’Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠΈΡ‚Π΅ ситуации, ΠΊΠΎΠ³Π΄Π° Π²Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π’Ρ‹ запросили Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ ΠΈΡ… Π°Π½Π°Π»ΠΈΠ· (Π½Π΅ΠΊΠΎΠ΅ вычислСниС), Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ запросили Ρ‚Π΅ ΠΆΠ΅ самыС Π΄Π°Π½Π½Ρ‹Π΅, Π° ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ.

Π’Π°ΠΊΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ REPEATABLE READ, ΠΊΠ°ΠΊ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Β«ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Β» – это ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ сначала ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΈΡ… Π½Π° основС Π½Π΅ΠΊΠΈΡ… вычислСний, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ выполнятся, Π½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π΅, которая зафиксировала послСдняя опСрация обновлСния. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² опСрациях чтСния Π² Π½Π°Ρ‡Π°Π»Π΅ этих Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π½Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

SERIALIZABLE

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Β«Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½Ρ‹Ρ…Β» записСй. Π€Π°Π½Ρ‚ΠΎΠΌΠ½Ρ‹Π΅ записи – это Ρ‚Π΅ записи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π˜Π½Ρ‹ΠΌΠΈ словами, Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π’Ρ‹ запросили ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π’Ρ‹ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΈΡ… снова с Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ, Π½ΠΎ Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ. Π‘ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ изоляции Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»ΠΈ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Ρ‰Π΅ Π½Π΅Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π΄Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ всС строки, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρƒ запроса, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ транзакция, ΠΊΠ°ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΈ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹.

SNAPSHOT ΠΈ READ COMMITTED SNAPSHOT

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΡ€ΠΎΠ²Π½ΠΈ изоляции, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… основан Π½Π° вСрсиях строк, это

Π˜Π½Ρ‹ΠΌΠΈ словами, SQL Server Π΄Π΅Π»Π°Π΅Ρ‚ снимок ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ послСдниС вСрсии ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… строк. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΏΠΎΠΊΠ° ΠΎΠ΄Π½Π° транзакция ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ сразу ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… строк. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π½ΠΈ изоляции, основанныС Π½Π° вСрсиях строк, Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ обновлСния ΠΈ удалСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄ этими опСрациями сСрвСр Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ снимок строк Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

SNAPSHOT – ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ строки, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Ρ‘Π½Π½Ρ‹Π΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, соотвСтствСнно, ΠΈΠΌΠ΅Π½Π½ΠΎ эти строки Π±ΡƒΠ΄ΡƒΡ‚ считаны Π² случаС обращСния ΠΊ Π½ΠΈΠΌ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΈ Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ SERIALIZABLE.

READ COMMITTED SNAPSHOT – этот ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ SNAPSHOT, с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ снимок строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Ρ‹ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π² SNAPSHOT.

ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°

На основС Π²Ρ‹ΡˆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ использования Π΄Π°Π½Π½Ρ‹Ρ…:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ изоляции устраняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ сводныС Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт / Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΠΈΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½ΠΎΠ΅ обновлСниСГрязноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΠ΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Π€Π°Π½Ρ‚ΠΎΠΌΠ½Ρ‹Π΅ записи
READ UNCOMMITTEDУстраняСтНС устраняСтНС устраняСтНС устраняСт
READ COMMITTEDУстраняСтУстраняСтНС устраняСтНС устраняСт
REPEATABLE READУстраняСтУстраняСтУстраняСтНС устраняСт
SERIALIZABLEУстраняСтУстраняСтУстраняСтУстраняСт
SNAPSHOTУстраняСтУстраняСтУстраняСтУстраняСт
READ COMMITTED SNAPSHOTУстраняСтУстраняСтУстраняСтУстраняСт

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ уровня изоляции Π² T-SQL

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции для всСй сСссии, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SET TRANSACTION ISOLATION LEVEL ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ уровня изоляции.

Π’Π°ΠΊΠΆΠ΅ для ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ SNAPSHOT ΠΈ READ COMMITTED SNAPSHOT ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ALLOW_SNAPSHOT_ISOLATION для уровня изоляции SNAPSHOT ΠΈ READ_COMMITTED_SNAPSHOT для уровня READ COMMITTED SNAPSHOT.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°! Если Вас интСрСсуСт язык SQL, Ρ‚ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Β«SQL ΠΊΠΎΠ΄Β» – это ΡΠ°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ языку SQL для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов. Π’ Π½Π΅ΠΉ язык SQL рассматриваСтся ΠΊΠ°ΠΊ стандарт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послС прочтСния Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с языком SQL Π² любой систСмС управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

На сСгодня это всС, надСюсь, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±Ρ‹Π» Π’Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… встрСч!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *