[link]

Eu tenho uma tabela:

CREATE TABLE test_time (`id` int(11) not null, `num` int(11) not null, PRIMARYKEY(`id`);

Depois disso, criei um evento:

CREATE
EVENT testEvent
ON
SCHEDULE EVERY 1 SECOND 
DO 
BEGIN
UPDATE
    test_time
SET
    num = num + 1 
WHERE 
    id = 1;

UPDATE
    test_time
SET
    num = num + 1 
WHERE 
    id = 2;
END

E MySQL disse: (nota: a linha 12 é id = 1;)

#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 '' at line 12

Por que o erro e como posso corrigi-lo?

  • Qual o cliente MySQL que você está usando para criar isso? Você estabeleceu um alternativoDELIMITER ? – Michael Berkowski Jun 28 ’14 às 2:51
  • Você deve mudar o delimitador antes de usar CREATE EVENT com alguma coisa DELIMITER $$ e alterá-lo depois do final END com DELIMITER ; – user1864610 Jun 28 ’14 at 3:09
  • Obrigado @MichaelBerkowski, quando eu configurei o DELIMETER alternativo, o MySQL disse: “# 1064 – Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe certa para usar perto de ‘DELIMITER’ na linha 1” , Mas o evento foi criado! E eu não sei por quê! – azul qn 28 de junho às 14h36
  • Deve estar na delimiterdeclaração de reinicialização após o último end; $$código. Não tenho certeza de como você colocou no seu código. – Ravinder Reddy Jun 28 ’14 às 12:01
Advertisements