@transaction.commit_on_success
def action_init_address_receipt(cls, request):
execute_sql('alter table finance_addressreceipts disable trigger user;')
execute_sql('select init_address_receipt();')
# next line below is where I get the pending trigger event Error
execute_sql('alter table finance_addressreceipts enable trigger user;')
return {'message': 'well done'}
我做了一些研究,似乎我需要在两个单独的交易中做到这一点。我想知道是否有一些更好,更优雅的解决方案。
答案 0 :(得分:1)
好的,通常,当事务中的先前语句创建了挂起的触发事件(包括外键引用)时,会发生此错误。通常,您需要确保:
任何alter table
次查询都在交易开始时附近,并且
您了解整个事务流程的运行方式。