Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

ERRO 1064 (42000) no MySQL


(Para aqueles que chegam a esta pergunta de um mecanismo de pesquisa), verifique se seus procedimentos armazenados declaram um delimitador personalizado, pois esse é o erro que você pode ver quando o mecanismo não consegue descobrir como encerrar uma instrução:

Se você tiver um dump de banco de dados e veja:
DROP PROCEDURE IF EXISTS prc_test;
CREATE PROCEDURE prc_test( test varchar(50))
BEGIN
    SET @sqlstr = CONCAT_WS(' ', 'CREATE DATABASE',  test, 'CHARACTER SET utf8 COLLATE utf8_general_ci');
    SELECT @sqlstr;
    PREPARE stmt FROM @sqlstr;
    EXECUTE stmt;
END;

Tente envolver com um DELIMITER personalizado :
DROP PROCEDURE IF EXISTS prc_test;
DELIMITER $$
CREATE PROCEDURE prc_test( test varchar(50))
BEGIN
    SET @sqlstr = CONCAT_WS(' ', 'CREATE DATABASE',  test, 'CHARACTER SET utf8 COLLATE utf8_general_ci');
    SELECT @sqlstr;
    PREPARE stmt FROM @sqlstr;
    EXECUTE stmt;
END;
$$
DELIMITER ;