Sobes.tech
Middle

O que é um erro de tabela mutante?

sobes.tech IA

Resposta da IA

O erro "Mutating table error" geralmente ocorre na base de dados Oracle ao tentar modificar (inserir, atualizar ou eliminar) dados numa tabela que já está a ser utilizada na consulta atual, por exemplo, num trigger ou subconsulta. Isto deve-se à restrição de que não é possível ler e modificar a mesma tabela simultaneamente numa única operação, para evitar comportamentos imprevisíveis.

Exemplo: se num trigger que é acionado ao modificar a tabela A, tenta atualizar essa mesma tabela A, ocorrerá este erro.

Para contornar este erro, normalmente usam-se:

  • Tabelas temporárias para dados intermédios
  • Execução diferida de alterações (por exemplo, através do pacote DBMS_JOB)
  • Reescrever a lógica para não modificar a tabela no trigger onde ela já está a ser utilizada.