Ir para conteúdo
Fórum Script Brasil
  • 0

Trigger não funciona


dougdomi@gmail.com

Pergunta

Boa Tarde;

O trigger abaixo é importado sem problemas dentro do banco de dados...

Meu objetivo seria que depois que fosse feita a alteração do campo "quantia" e depois esse campo fosse = 0 então removia ele do banco...

To a atarde toda pra fazer isso funciona...

já tentei das duas formas abaixo:

DELIMITER |

CREATE TRIGGER checkinv AFTER UPDATE ON inventario

FOR EACH ROW

BEGIN

DELETE FROM inventario WHERE quantia < 1;

END;

|

DELIMITER ;

DELIMITER |

CREATE TRIGGER checkinv AFTER UPDATE ON inventario

FOR EACH ROW

BEGIN

IF NEW.quantia < 1 THEN

DELETE FROM inventario WHERE id = NEW.id;

END IF;

END;

|

DELIMITER ;

Editado por Denis Courcy
Mudança no título. Ver regra 3.6
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Boa Tarde;

O trigger abaixo é importado sem problemas dentro do banco de dados...

Meu objetivo seria que depois que fosse feita a alteração do campo "quantia" e depois esse campo fosse = 0 então removia ele do banco...

To a atarde toda pra fazer isso funciona...

já tentei das duas formas abaixo: ...

Poderia explicar melhor, por favor?

Não consegui entender o que você quer deletar.

Link para o comentário
Compartilhar em outros sites

  • 0
depois que ele atualizar o campo X na tabela inventario e esse valor fica = 0 então ele remove do banco o registro que tinha sido atualizado...entende?

Você não conseguirá excluir um registro de uma tabela, através de um trigger, se este registro estiver sendo 'usado' por outro comando sql de alteração (insert/update/delete) da mesma tabela.

Você sempre receberá a mensagem:

Error Code : 1442

Can't update table 'minhatabela' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Você pode alterar (incluir/excluir) registro de outra tabela mas não da tabela que você está trabalhando no momento.
Link para o comentário
Compartilhar em outros sites

  • 0
qual forma eu poderia fazer para resolver este meu problema?

Executando uma segunda instrução que verificasse se o valor é igual a zero para aquele registro específicao.

Algo parecido com o abaixo:

delete from minhatabela where meuvalor = 0 and ID = valorDoIDNaqueleRegistro;

Entenda por ID o campo chave primária de sua tabela.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...