phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Không thể chạy truy vấn trong lỗi cú pháp MySQL không mong muốn

Sự cố với điều này:

DELIMITER $$
DROP PROCEDURE IF EXISTS my_test;
CREATE PROCEDURE my_test() ...

có phải là MySQL không nhìn thấy dấu chấm phẩy ở cuối DROP PROCEDURE không dòng câu lệnh ở cuối câu lệnh. Điều này là do dòng trước đó đã nói với MySQL rằng dấu chấm dứt câu lệnh là một cái gì đó khác với dấu chấm phẩy. Bạn đã nói với MySQL rằng các câu lệnh sẽ được kết thúc bằng hai ký hiệu đô la. Vì vậy, MySQL đang đọc DROP PROCEDURE dòng, tìm kiếm dấu chấm dứt câu lệnh. Và toàn bộ blob mà nó đọc KHÔNG phải là một câu lệnh MySQL hợp lệ, nó tạo ra lỗi cú pháp.

Cách khắc phục:di chuyển DROP PROCEDURE dòng trước DELIMITER $$ đường kẻ; hoặc chấm dứt DROP PROCEDURE câu lệnh có dấu phân cách được chỉ định thay vì dấu chấm phẩy.

Vấn đề thứ hai bạn báo cáo là lỗi cú pháp. Điều đó xảy ra vì MySQL không nhận ra IF như phần đầu của một câu lệnh SQL hợp lệ.

IF tuyên bố có giá trị chỉ trong ngữ cảnh của một chương trình được lưu trữ MySQL (ví dụ:trong một CREATE PROCEDURE tuyên bố.)

Cách khắc phục:Sử dụng IF chỉ trong ngữ cảnh của một chương trình được lưu trữ MySQL.

Vấn đề thứ ba bạn báo cáo cũng là lỗi cú pháp. Điều đó xảy ra vì bạn không có cú pháp hợp lệ cho SET tuyên bố; Cú pháp MySQL cho SET câu lệnh để gán giá trị cho biến người dùng là:

SET @uservar = expr 

MySQL đang mong đợi một biểu thức sau dấu bằng. MySQL thì không mong đợi một câu lệnh SQL.

Để gán giá trị cho một biến người dùng do kết quả từ SELECT , hãy thực hiện bài tập trong câu lệnh SELECT, ví dụ:

SELECT @Count := Count(id) FROM `tbl_object_users` WHERE `username`='jp2code'

Lưu ý rằng toán tử gán bên trong SELECT câu lệnh là := (dấu hai chấm bằng), không chỉ = .



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Làm cách nào để đăng nhập phpmyadmin trên Google Cloud

  2. Đồng bộ hóa cơ sở dữ liệu từ xa và cục bộ MySQL bằng phpMyAdmin

  3. Tôi đã thay đổi cổng MySQL trong XAMPP, bây giờ làm cách nào để lắng nghe cổng mới?

  4. Cách yêu cầu SSL cho tất cả người dùng từ xa

  5. Làm thế nào để giới hạn số lượng nhiều trong mối quan hệ một-nhiều giữa hai bảng?