@transaction.atomic()
def insert_in_sample_table(request):
try:
with transaction.atomic():
insert_obj = SampleTable1.objects.create(fld_id=1, fld_name='abc')
raise Exception ("This is manual exception")
insert_obj2 = SampleTable2.objects.create(fld_id=1, fld_name='xyz')
return HttpResponse("SUCCESS")
except Exception as e:
return HttpResponse(str(e))
Здесь я добавил исключение, которое будет происходить все время.
Мое единственное намерение - получить откат после того, как я вызову ручное исключение.
Первая транзакция успешно откатывается при использовании SQLite3 (база данных django по умолчанию).
Но транзакция не откатывается при использовании MySQL.
Использование базы данных InnoDB mysql.