Mysql
 sql >> база данни >  >> RDS >> Mysql

ГРЕШКА 1064 (42000) в MySQL

(За тези, които идват на този въпрос от търсачка), проверете дали вашите съхранени процедури декларират персонализиран разделител, тъй като това е грешката, която може да видите, когато машината не може да разбере как да прекрати изявление:

Ако имате дъмп на база данни и вижте:

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;

Опитайте да обвиете с персонализиран 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP PDO MySQL Структура на транзакционен код

  2. Мониторинг и управление на операциите на MySQL 8.0 с ClusterControl

  3. Mysql - Как да направя търсене, чувствително към главни букви?

  4. Хибернация, принудително времеви клеймо да се запази/зареди като UTC

  5. Функция MySQL POW() – Повишаване на стойност до степента на друга стойност