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

lỗi dấu phân cách mysql

Tôi sẽ xóa dấu chấm phẩy sau END .

    ...
END
|
DELIMITER ;

Hãy xem lại nhận xét của bạn, bạn không thể sử dụng dấu phân cách hiện tại khi khai báo dấu phân cách mới. Nghe có vẻ khó hiểu, nhưng hãy cân nhắc nếu bạn làm điều này:

DELIMITER |;

Bây giờ MySQL sẽ nghĩ rằng dấu phân cách là "|;" (hai ký tự, một dấu gạch và một dấu chấm phẩy). Nếu bạn nghĩ về điều đó, hãy DELIMITER phải được ứng dụng khách MySQL đối xử theo một cách đặc biệt. Đó là tuyên bố duy nhất không thể được theo sau bởi dấu phân cách hiện tại.

Vì vậy, khi đặt dấu phân cách thành dấu gạch ngang, hãy làm như sau:

DELIMITER |

Khi đặt nó trở lại dấu chấm phẩy, hãy làm như sau:

DELIMITER ;

FWIW, tôi đã chạy phần sau mà không có lỗi trên cơ sở dữ liệu thử nghiệm cục bộ của tôi trên MySQL 5.0.75:

DROP FUNCTION IF EXISTS PersonName;
DELIMITER |

CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
  DECLARE pname CHAR(20) DEFAULT '';
  SELECT name INTO pname FROM family WHERE ID=personID;
  RETURN pname;
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. tính toán và hiển thị một ngày như 'giây trước', 'phút trước', 'giờ trước' v.v.

  2. làm cách nào để tạo hệ thống gắn thẻ bằng php và mysql?

  3. mysql cte. sử dụng với và chèn nó cảnh báo lỗi cú pháp

  4. Không gian bị chiếm bởi các hàng đã xóa có được sử dụng lại không?

  5. Cân bằng tải PostgreSQL &Cải tiến ProxySQL - ClusterControl 1.5