Como criar uma trigger urgente !!
Pessoal novo e nunca criei uma trigger , gostaria muito da ajuda de vocês;
tenho um database com nome de paradox7 no MYSQL dentro dela tenho campos chamado almox e o outro solicitação.
Estou criando um trigger para atualizar o saldo do estoque da tabela almox .
na hora de criar a trigger me da esse erro
error 1064 42000 you have an error in your sql syntax check the manual that corresponds to your MYSQL server version for the right syntax to use near CREATE TRIGGER
Alguem pode me ajudar !
Obrigado
tenho um database com nome de paradox7 no MYSQL dentro dela tenho campos chamado almox e o outro solicitação.
Estou criando um trigger para atualizar o saldo do estoque da tabela almox .
na hora de criar a trigger me da esse erro
error 1064 42000 you have an error in your sql syntax check the manual that corresponds to your MYSQL server version for the right syntax to use near CREATE TRIGGER
Alguem pode me ajudar !
Obrigado
Watson Rocha
Curtidas 0
Respostas
William
15/07/2012
Colega eu nunca criei Trigger no Mysql só no Firebird, mas aparentemente na msg de erro consta que seu código está com algum erro de sintaxe, o correto seria vc postar o código.
Uma observação essa dúvida pertence ao fórum MYSQL hein ..
Uma observação essa dúvida pertence ao fórum MYSQL hein ..
GOSTEI 0
Watson Rocha
15/07/2012
WIIfL
Boa Tarde !
Estou usando esse comando.
CREATE TRIGGER tr_aur
AFTER INSERT ON almox
FOR EACH ROW BEGIN
UPDATE solicitacao SET quantidade= quantidade- NEW.quantidadeWHERE quantidade= NEW.quantidade;
END;
Vou tentar explicar melhor. eu uma tabela e os campos dessa tabela eu criei no HEISQL dentro do prompt do MYSQL
eu faço assim :
use paradox7; <-- esse é meu database
depois
CREATE TRIGGER tr_aur
AFTER INSERT ON almox
FOR EACH ROW BEGIN
UPDATE solicitacao SET quantidade= quantidade- NEW.quantidadeWHERE quantidade= NEW.quantidade;
END;
eu quero que funcione assim.
quando o usuario solicitar a material via sistema automaticamente ,atualize o saldo do produto.
tenho duas tabela solicitacao
e a outra almox .quando solicitado na tabela solicitacao atualize a tabela almox
Obrigado espero ter explicado correto !!
Boa Tarde !
Estou usando esse comando.
CREATE TRIGGER tr_aur
AFTER INSERT ON almox
FOR EACH ROW BEGIN
UPDATE solicitacao SET quantidade= quantidade- NEW.quantidadeWHERE quantidade= NEW.quantidade;
END;
Vou tentar explicar melhor. eu uma tabela e os campos dessa tabela eu criei no HEISQL dentro do prompt do MYSQL
eu faço assim :
use paradox7; <-- esse é meu database
depois
CREATE TRIGGER tr_aur
AFTER INSERT ON almox
FOR EACH ROW BEGIN
UPDATE solicitacao SET quantidade= quantidade- NEW.quantidadeWHERE quantidade= NEW.quantidade;
END;
eu quero que funcione assim.
quando o usuario solicitar a material via sistema automaticamente ,atualize o saldo do produto.
tenho duas tabela solicitacao
e a outra almox .quando solicitado na tabela solicitacao atualize a tabela almox
Obrigado espero ter explicado correto !!
GOSTEI 0
Watson Rocha
15/07/2012
estou tentando novamente e esta dando erro na linha 6
CREATE TRIGGER
AUR
AFTER INSERT ON paradox7 <<---- (paradox7 é minha database)
FOR EACH ROW
BEGIN
UPDATE almox set quantidade WHERE quantidade=new.quantidade(almox é minha tabela e a quantidade é o meu campo aqui da erro)
end;
CREATE TRIGGER
AUR
AFTER INSERT ON paradox7 <<---- (paradox7 é minha database)
FOR EACH ROW
BEGIN
UPDATE almox set quantidade WHERE quantidade=new.quantidade(almox é minha tabela e a quantidade é o meu campo aqui da erro)
end;
GOSTEI 0
Joel Rodrigues
15/07/2012
Você não cria triggers no database em si e sim na tabela.
GOSTEI 0
Bruno Leandro
15/07/2012
me parece que o update esta com problema tente desta forma, colocando o campo codigo correspondente ao seu campo
CREATE TRIGGER
AUR
AFTER INSERT ON paradox7
FOR EACH ROW
BEGIN
UPDATE almox set quantidade=new.quantidade WHERE codigo=new.codigo;
end;
CREATE TRIGGER
AUR
AFTER INSERT ON paradox7
FOR EACH ROW
BEGIN
UPDATE almox set quantidade=new.quantidade WHERE codigo=new.codigo;
end;
GOSTEI 0
Watson Rocha
15/07/2012
Brunão por me responder.
O que vc me passou aparentemente está dando certo , ela só me apresentou um erro na linha 7 . aonde fica o END .
como eu posso finalizar essa trigger ?
Obrigado
O que vc me passou aparentemente está dando certo , ela só me apresentou um erro na linha 7 . aonde fica o END .
como eu posso finalizar essa trigger ?
Obrigado
GOSTEI 0
Bruno Leandro
15/07/2012
voce substituiu o codigo para o seu campo chave primaria da tabela
GOSTEI 0
Watson Rocha
15/07/2012
Bruno Bom dia !
Eu fiz esse jeito , e deu certo ,mas na hora do usuario inserir dados no campo quantidade no sistema esta dando erro.
delimiter $$
CREATE TRIGGER
AUR
AFTER INSERT ON almox
FOR EACH ROW
BEGIN
UPDATE almox SET quantidade=new.quantidade WHERE codigo=new.codigo;
END;
delimiter $$
Abraço !
Eu fiz esse jeito , e deu certo ,mas na hora do usuario inserir dados no campo quantidade no sistema esta dando erro.
delimiter $$
CREATE TRIGGER
AUR
AFTER INSERT ON almox
FOR EACH ROW
BEGIN
UPDATE almox SET quantidade=new.quantidade WHERE codigo=new.codigo;
END;
delimiter $$
Abraço !
GOSTEI 0
Watson Rocha
15/07/2012
Brunão segue o erro..
cant update table almox in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Será que tem que acrescentar mais comando script ?
Valeu Abraço.
cant update table almox in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Será que tem que acrescentar mais comando script ?
Valeu Abraço.
GOSTEI 0
Bruno Leandro
15/07/2012
Watson vou tentar explicar a trigger talvez te ajude a entender
CREATE TRIGGER AUR -- esta linha significa que voce esta criando uma trigger com o nome AUR
AFTER INSERT ON paradox7 -- aqui significa que apos inserir os registros na tabela paradox7 essa trigger sera executada
FOR EACH ROW -- significa que em todos os registros da tabela paradox7 sera executado o comando
BEGIN -- inicio de um bloco
UPDATE almox set quantidade=new.quantidade WHERE codigo=new.codigo;
--ou seja apos inserir um registro na tabela paradox7
--será executado um update na tabela almox atualizando a quantidade para a quantidade definida na tabela paradox7, aonde o --codigo na tabela almox é o codigo utilizado ao inserir na tabela paradox7
end; -- finalizador
CREATE TRIGGER AUR -- esta linha significa que voce esta criando uma trigger com o nome AUR
AFTER INSERT ON paradox7 -- aqui significa que apos inserir os registros na tabela paradox7 essa trigger sera executada
FOR EACH ROW -- significa que em todos os registros da tabela paradox7 sera executado o comando
BEGIN -- inicio de um bloco
UPDATE almox set quantidade=new.quantidade WHERE codigo=new.codigo;
--ou seja apos inserir um registro na tabela paradox7
--será executado um update na tabela almox atualizando a quantidade para a quantidade definida na tabela paradox7, aonde o --codigo na tabela almox é o codigo utilizado ao inserir na tabela paradox7
end; -- finalizador
GOSTEI 0
Watson Rocha
15/07/2012
Bruno fico bem claro que vc me explicou .
Cosegui fazer a trigger o paradox7 que eu te passei era o meu databases ,mas já alterei .
e ficou assim
delimiter $$
CREATE TRIGGER
AUR
AFTER INSERT ON almox
FOR EACH ROW
BEGIN
UPDATE almox SET quantidade=new.quantidade WHERE codigo=new.codigo;
END;
delimiter $$
Maravilha funcionou , agora é um seguinte quando eu abro o Delphi e vou inserir dados no campo quantidade e retorna esse erro na tela do Delphi...
cant update table almox in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Obrigado pela força Bruno !!
Cosegui fazer a trigger o paradox7 que eu te passei era o meu databases ,mas já alterei .
e ficou assim
delimiter $$
CREATE TRIGGER
AUR
AFTER INSERT ON almox
FOR EACH ROW
BEGIN
UPDATE almox SET quantidade=new.quantidade WHERE codigo=new.codigo;
END;
delimiter $$
Maravilha funcionou , agora é um seguinte quando eu abro o Delphi e vou inserir dados no campo quantidade e retorna esse erro na tela do Delphi...
cant update table almox in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Obrigado pela força Bruno !!
GOSTEI 0
Watson Rocha
15/07/2012
Pessoal alguem ja viu esse erro ?
cant update table almox in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Criei essa trigger , e na hora de inserir dado na tela do delphi 7 ele aparece esse erro acima !
Alguem pode me dar uma luz !
Obrigado.
cant update table almox in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Criei essa trigger , e na hora de inserir dado na tela do delphi 7 ele aparece esse erro acima !
Alguem pode me dar uma luz !
Obrigado.
GOSTEI 0