Pessoal, estou com um probleminha ao executar trigger, é a primeira vez que estou mexendo nela e não estou sabendo lidar com ele.
é o seguinte tenho uma tabela chamada noticias com os seguintes campos codnoticia, codnoticiacod, codadmin, titulo, data, conteudo, foto, destaque
quando eu uso o comando Insert Into noticias (codadmin, titulo, data, conteudo, foto, destaque) values ('1', 'teste', '2001-09-23', 'testeteste', '', 'S');
eu quero que a trigger acionasse depois da execução do comando acima para gerar um código criptografado através de uma funcão sha1() e inserir no campo codnoticiacod , mas ocorre um erro: Error Code : 1442 - Can't update table 'noticias' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
DELIMITER $$
DROP TRIGGER /*!50032 IF EXISTS */ `imovel`.`criptografar`$$
create trigger `imovel`.`criptografar` AFTER INSERT on `imovel`.`noticias`
for each row BEGIN
update noticias set codnoticiacod=sha1(NEW.codnoticia);
END;
$$
DELIMITER;
Question
marceloths
Pessoal, estou com um probleminha ao executar trigger, é a primeira vez que estou mexendo nela e não estou sabendo lidar com ele.
é o seguinte tenho uma tabela chamada noticias com os seguintes campos codnoticia, codnoticiacod, codadmin, titulo, data, conteudo, foto, destaque
quando eu uso o comando Insert Into noticias (codadmin, titulo, data, conteudo, foto, destaque) values ('1', 'teste', '2001-09-23', 'testeteste', '', 'S');
eu quero que a trigger acionasse depois da execução do comando acima para gerar um código criptografado através de uma funcão sha1() e inserir no campo codnoticiacod , mas ocorre um erro: Error Code : 1442 - Can't update table 'noticias' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Fico aguardando uma ajuda
Muito obrigado.
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.