sql >> Database teknologi >  >> RDS >> Mysql

FEJL 1064 (42000) i MySQL

(For dem, der kommer til dette spørgsmål fra en søgemaskine), skal du kontrollere, at dine lagrede procedurer erklærer en tilpasset afgrænsning, da dette er den fejl, du kan se, når motoren ikke kan finde ud af, hvordan man afslutter en erklæring:

Hvis du har en database dump og se:

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;

Prøv at pakke med en brugerdefineret DELIMITER :

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 ;


  1. Anbefalede Intel-processorer til SQL Server 2014-arbejdsbelastninger

  2. Kan ikke oprette en forekomst af OLE DB-udbyder Microsoft.Jet.OLEDB.4.0 for linket server null

  3. Sådan finder du hvornår MySQL/MariaDB-serveren blev startet

  4. Hvordan kan jeg oprette forbindelse til Oracle Database 11g-server gennem ssh-tunnelkæden (dobbelttunnel, server i virksomhedens netværk)?