Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

renatonp

Problema na trigger

Recommended Posts

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 'BEGIN
UPDATE 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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.