A situação é a seguinte: tenho uma tabela chamada EQUIPAMENTO que contém um campo denominado ID, que é do tipo AUTO INCREMENT. Tenho outro campo denominado PATRIMONIO, que quando não informado terá que assumir o mesmo valor que o CAMPO ID, lembrando que ID não é informado pelo usuário, é um valor gerado pelo banco no momento da inserção. Desta forma, pensei em colocar um TRIGGER para isso, que no caso seria disparado no AFTER INSERT, visto que o ID só é conhecido após a inserção e atualizaria o campo PATRIMONIO quando o mesmo não tivesse sido informado. Fiz o seguinte TRIGGER:
CREATE TRIGGER trigger_patrimonio AFTER INSERT ON equipamento FOR EACH ROW
BEGIN
IF NEW.PATRIMONIO IS NULL THEN
UPDATE EQUIPAMENTO SET PATRIMONIO = ID WHERE ID = NEW.ID;
END IF;
END;
e estou recebendo este erro:
Can’t update table ‘equipamento’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Error Code: 1442
Já vi que é referente a não ser possível a atualização da tabela envolvida no TRIGGER. Alguém já passou por isso e teria uma outra idéia de forma que possa ser resolvido sem nenhuma gambiarra…