renatonp 0 Denunciar post Postado Junho 10, 2013 Estou tentando fazer uma trigger, mas está dando erro. Segue abaixo a trigger e o erro: CREATE TRIGGER before_update_book BEFORE UPDATE ON book BEGIN UPDATE log_urls SET log_urls.isbn = book.isbn, log_urls.url_capa = book.url_cover, log_urls.url_miolo = book.url_content, log_urls.momento = NOW(); END$$ DELIMITER ; ---------------------------------x----------------------------Mensagens do MySQL :#1064 - 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 'BEGINUPDATE log_urls SET log_urls.isbn = book.isbn,log_urls.url_capa' at line 4 Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Junho 11, 2013 Parece que você está tentando fazer um logging, mas usando UPDATE não faz sentido. Além do mais, da forma como você está usando (sem a clausula WHERE) o UPDATE será executado em todas as linhas da tabela. Um INSERT faz mais sentido, já que no logging, informações de eventos devem ser adicionadas a tabela. DELIMITER $ CREATE TRIGGER before_update_book BEFORE UPDATE ON book FOR EACH ROW BEGIN INSERT INTO log_urls SET log_urls.isbn = book.isbn, log_urls.url_capa = book.url_cover, log_urls.url_miolo = book.url_content, log_urls.momento = NOW(); END$ DELIMITER ; Compartilhar este post Link para o post Compartilhar em outros sites