Durante o desenvolvimento de um sistema de gestão de estoque para uma empresa de varejo, o desenvolvedor se depara com uma situação desafiadora. O sistema deve garantir que os produtos em estoque nunca tenham uma quantidade negativa, pois isso pode causar problemas sérios de integridade de dados e impactar as operações da empresa. No entanto, enquanto revisava o código do procedimento PL/SQL responsável por atualizar a quantidade de produtos em estoque após uma venda, o desenvolvedor percebeu que não havia tratamento de exceções para o caso em que a quantidade vendida fosse maior que a quantidade disponível em estoque. Diante dessa situação, o desenvolvedor precisa criar uma exceção específica, associá-la a um código de erro personalizado e garantir que o sistema use a nova exceção criada.
Para atingir esse objetivo, o desenvolvedor deverá:
João está encarregado de criar uma tabela em PostgreSQL para gerenciar informações sobre funcionários e seus supervisores, com base na seguinte representação lógica da entidade “Funcionario”

Para tanto, João deverá criar o “autorrelacionamento” entre funcionários e seus supervisores, considerando que nem todo funcionário possui supervisor. Para isso, João deverá utilizar o seguinte script SQL: