sql >> Databáze >  >> RDS >> Mysql

CHYBA 1064 (42000) v MySQL

(Pro ty, kteří přicházejí na tuto otázku z vyhledávače), zkontrolujte, zda vaše uložené procedury deklarují vlastní oddělovač, protože toto je chyba, která se může zobrazit, když motor nemůže zjistit, jak ukončit příkaz:

Pokud máte výpis databáze a uvidíte:

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;

Zkuste obal zabalit pomocí vlastního 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. Zabezpečení php api pro použití v aplikaci pro Android

  2. Limitní rozsah MySQL

  3. MySQL:Chyba při odstraňování databáze (chyba 13; chyba 17; chyba 39)

  4. Použití LIKE v klauzuli Oracle IN