Обеспечение Атомарности sql

Используйте pipe():

result = table.iloc[:,2:-1].pipe(lambda df: df.rename(columns={df.columns[-1]: "Text"}))
5
задан dharm0us 28 March 2009 в 10:13
поделиться

2 ответа

Если Вы делаете

BEGIN TRANSACTION
UPDATE accounts set balance = balance - amount WHERE ac_num = 101
UPDATE accounts set balance = balance + amount WHERE ac_num = 102
COMMIT TRANSACTION

Система баз данных напишет записки тому, что, сделал для изменений на учетной записи 101. И затем если бы работа над учетной записью 102 перестала бы работать, RDBMS использует те примечания для отмены работы над 101.

Кроме того, когда это запустилось, работа над учетной записью 101 является взятиями блокировка на базе данных, так, чтобы никто еще не мог приехать и считать обновленный, но не фиксировавшие данные в учетной записи 101. (Блокировка вот является в основном просто примечанием где-нибудь, "Я работаю здесь, не затрагивайте".)

5
ответ дан 14 December 2019 в 09:01
поделиться

Чтобы быть атомарными, транзакции должны:

  • Препятствуйте тому, чтобы другие транзакции вмешались в строки, которые они пишут или читают
  • Удостоверьтесь, что или все или ни одно из изменений, которые вносит транзакция, будут в базе данных, когда транзакция будет фиксировать.

Сначала каждый достигается путем блокировки строк, что чтения транзакции или записи во время он - выполнение.

Второй сделан так, чтобы транзакции записали свои действия в журнал транзакций. Это делает базу данных способной восстановиться, даже когда сервер теряет питание во время транзакции. В этом случае процесс восстановления считает журнал, удостоверьтесь, что активные (незафиксированные) транзакции прерываются, и отменяются изменения, внесенные ими.

2
ответ дан 14 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: