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.