Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

LỖI 1064 (42000) trong MySQL

(Đối với những người đến câu hỏi này từ công cụ tìm kiếm), hãy kiểm tra xem các thủ tục được lưu trữ của bạn có khai báo dấu phân cách tùy chỉnh hay không, vì đây là lỗi mà bạn có thể gặp khi công cụ không thể tìm ra cách kết thúc một câu lệnh:

Nếu bạn có một kết xuất cơ sở dữ liệu và xem:

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;

Thử gói bằng DELIMITER tùy chỉnh :

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. Cách tạo người dùng mới và cấp quyền trong MySQL

  2. Dữ liệu nhị phân không được lưu trữ đúng cách trong MySQL

  3. Chọn một hàng và các hàng xung quanh nó

  4. Làm cách nào để kết nối với cơ sở dữ liệu MySQL từ xa qua SSL bằng Play Framework?

  5. PHP Không có cơ sở dữ liệu nào được chọn