RGomes74 Posted May 19, 2022 at 06:51 PM Report Share #625967 Posted May 19, 2022 at 06:51 PM Boa tarde, Venho aqui para recorrer à vossa ajuda, porque estou bloqueado e já não sei o que fazer. Eu estou a tentar fazer um trigger que me permita atualizar alguns campos de uma tabela, tendo por base o valor doutra tabela. No entanto, eu até consigo deixar o trigger a funcionar com a condição AFTER INSERT, mas não consigo deixar a funcionar com o AFTER UPDATE. Já simplifiquei coisas, editei código, adicionei e acrescentei variáveis, mas não estou a perceber o que estou a fazer mal para que isto não funcione com o AFTER UPDATE. Pus o código mais simples que tenho aqui, porque já sei se as mudanças que andei para aqui a fazem o mínimo sentido, mas como não tinha resultados, não quis inventar mais. Alguém consegue explicar-me o que estou a fazer de errado? Obrigado. BEGIN update documentsheaders inner join entity_stockdocument_extrafields on entity_stockdocument_extrafields.StockDocument_id=documentsheaders.id set documentsheaders.entitykeyid=entity_stockdocument_extrafields.entity where documentsheaders.DocumentKeyId='ES' and documentsheaders.entitykeyid<>entity_stockdocument_extrafields.entity update documentsheaders inner join entities on entities.KeyId=documentsheaders.EntityKeyId set documentsheaders.EntityDescription=entities.Name where documentsheaders.DocumentKeyId='ES' and documentsheaders.EntityKeyId=entities.KeyId; END Link to comment Share on other sites More sharing options...
M6 Posted May 20, 2022 at 03:25 PM Report Share #625977 Posted May 20, 2022 at 03:25 PM Não percebi o código que tens. O que está entre esse BEGIN e END é o trigger ou o update que despoleta o trigger? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
RGomes74 Posted May 21, 2022 at 01:11 PM Author Report Share #625985 Posted May 21, 2022 at 01:11 PM 21 horas atrás, M6 disse: Não percebi o código que tens. O que está entre esse BEGIN e END é o trigger ou o update que despoleta o trigger? Boa tarde. É o trigger em si. Basicamente, eu tenho uma tabela entity_stockdocument_extrafields que vai ter um campo preenchido por uma pessoa. Este valor será chave primária na tabela entities. Qual é o objetivo? Atualizar a tabela documentsheaders com base no valor preenchido na tabela entity_stockdocument_extrafields, indo buscar à tabela entities os dados que me falta, porque a tabela entity_stockdocument_extrafields não traz todos os dados. Se eu usar as queries individualmente, elas funcionam. Só que eu não estou muito habituado a fazer triggers, acho que deve ser o meu segundo trigger que estou a fazer e estou a sentir dificuldades em passar para o código o que quero fazer na teoria. obrigado. Link to comment Share on other sites More sharing options...
M6 Posted May 23, 2022 at 07:22 AM Report Share #625990 Posted May 23, 2022 at 07:22 AM Acho que há aí demasiada confusão para um trigger tão simples. Assim de caras, não te vejo a usar as keywords OLD nem NEW, que são os modificadores que têm contém os valores antes e depois do evento (nem todos existem em todos os eventos). Pelo que compreendi, basta fazeres um update a um campo de uma tabela usando o valor NEW, mas aconselho-te a compreenderes como funciona um trigger antes de avançares. Este tutorial de triggers de MySQL explica a coisa de forma bastante simples: https://www.mysqltutorial.org/mysql-triggers/ 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now