45.4. УпÑавление ÑÑанзакÑиÑми
- SPI_commit â заÑикÑиÑоваÑÑ ÑекÑÑÑÑ ÑÑанзакÑиÑ
- SPI_rollback â пÑеÑваÑÑ ÑекÑÑÑÑ ÑÑанзакÑиÑ
- SPI_start_transaction â ÑÑÑаÑевÑÐ°Ñ ÑÑнкÑиÑ
- SPI_rollback â пÑеÑваÑÑ ÑекÑÑÑÑ ÑÑанзакÑиÑ
ÐÑполнÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанзакÑиÑми (в ÑаÑÑноÑÑи, COMMIT и ROLLBACK) ÑеÑез ÑÑнкÑии SPI, Ñакие как SPI_execute, нелÑзÑ. Ðднако имеÑÑÑÑ Ð¾ÑделÑнÑе инÑеÑÑейÑнÑе ÑÑнкÑии, коÑоÑÑе пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанзакÑиÑми ÑеÑез SPI.
ÐообÑе говоÑÑ, не вÑегда безопаÑно и ÑазÑмно наÑинаÑÑ Ð¸ заканÑиваÑÑ ÑÑанзакÑии в пÑоизволÑнÑÑ
опÑеделÑемÑÑ
полÑзоваÑелÑми ÑÑнкÑиÑÑ
, вÑзÑваемÑÑ
из SQL, не пÑÐ¸Ð½Ð¸Ð¼Ð°Ñ Ð²Ð¾ внимание конÑекÑÑ Ð¸Ñ
вÑзова. ÐапÑимеÑ, завеÑÑение ÑÑанзакÑии в ÑеÑедине ÑÑнкÑии, вÑзванной в Ñложном SQL-вÑÑажении внÑÑÑи некоÑоÑой SQL-командÑ, ÑкоÑее вÑего пÑиведÑÑ Ðº ÑÑÑаннÑм внÑÑÑенним оÑибкам или ÑбоÑм. ÐÑедÑÑавленнÑе здеÑÑ Ð¸Ð½ÑеÑÑейÑнÑе ÑÑнкÑии пÑежде вÑего пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеализаÑиÑми пÑоÑедÑÑнÑÑ
ÑзÑков Ñ ÑелÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанзакÑиÑми в пÑоÑедÑÑаÑ
ÑÑÐ¾Ð²Ð½Ñ SQL, вÑзÑваемÑÑ
командой CALL (пÑи ÑÑом ÑÑиÑÑваеÑÑÑ ÐµÑ ÐºÐ¾Ð½ÑекÑÑ). Та же логика Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñеализована в пÑоÑедÑÑаÑ
на C, иÑполÑзÑÑÑиÑ
SPI, но подÑобное оÑвеÑение ÑÑой ÑÐµÐ¼Ñ Ð²ÑÑ
Ð¾Ð´Ð¸Ñ Ð·Ð° Ñамки данной докÑменÑаÑии.