MySQL 5.5.38에 처음 저장된 함수를 작성하려고하는데 성가신 구문 오류가 발생하지 않습니다. 이미 MySQL 문서를 확인했지만 문제가 무엇인지 알 수 없으며 오류 메시지는 You have an error in your SQL syntax; blah blah blah ... at line 1
이라고합니다.스토어드 함수를 생성 할 때 구문 오류가 발생했습니다.
DELIMITER $$
CREATE FUNCTION distm (lat1 DOUBLE, lng1 DOUBLE, lat2 DOUBLE, lng2 DOUBLE)
RETURNS DOUBLE NO SQL DETERMINISTIC
BEGIN
DECLARE radius DOUBLE;
SET radius = 6371008.771415059;
DECLARE x1, y1, x2, y2, dlat, dlng DOUBLE;
SET x1 = RADIANS(lng1);
SET y1 = RADIANS(lat1);
SET x2 = RADIANS(lng2);
SET y2 = RADIANS(lat2);
SET dlng = x2 - x1;
SET dlat = y2 - y1;
DECLARE dist DOUBLE;
SET dist = 2 * radius * ASIN(
SQRT(
POW(SIN(dlat/2), 2)
+ COS(y1) * COS(y2) * POW(SIN(dlng/2), 2)
)
);
RETURN dist;
END$$
DELIMITER ;
편집 : 정확한 오류 메시지는 다음과 같다 :
여기에 코드입니다
SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$
CREATE FUNCTION distm (lat1 DOUBLE, lng1 DOUBLE, lat2 DOUBLE, lng2' at line 1
당신이 distm을 존재하는 경우 'DROP 기능을 제거한 후 시도해 봤어 아니다? –
더 이상 도움을 원한다면 정확한 오류를 게시하십시오. – Rahul
@ Rahul 맞습니다. 정확한 오류 메시지를 추가했습니다. –