programing

CREATE FUNCTION에서 SQL 오류 발생(1064)(42000)

newstyles 2023. 7. 8. 10:40

CREATE FUNCTION에서 SQL 오류 발생(1064)(42000)

MariaDB 데이터베이스에 저장된 함수를 만들려고 합니다.내가 만들려는 함수를 MariaDB Docs에서 복사했습니다.

DELIMITER //

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC
BEGIN
  DECLARE x TINYINT;
  SET x = 42;
  RETURN x;
END 

//

DELIMITER ;

유감스럽게도 다음 오류가 발생합니다.

SQL 오류 [1064] [42000]:SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 3행의 "" 근처에서 사용할 올바른 구문을 확인하십시오.

제가 가장 당황하는 것은 주어진 코드가 MariaDB 문서에 따라 받는 바로 그 오류 코드를 해결해야 한다는 것입니다.

해결책은 DELMITER 명령을 사용하여 프로세스 기간 동안 고유한 구분 기호를 지정하는 것입니다.

알고 보니 제가 명령을 내릴 때 사용했던 고객인 DBeaver가 문제를 일으켰습니다.MySql Workbench로 전환한 후 모든 것이 예상대로 작동했습니다.

분명히, DBeaver는 구분 기호를 올바르게 인식하지 못했습니다.

이 루틴을 저장할 데이터베이스를 선택하는 것을 잊어버렸을 수 있습니다.

추가해 보십시오.use제1행으로서

use `test`;

DELIMITER //

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC
BEGIN
  DECLARE x TINYINT;
  SET x = 42;
  RETURN x;
END
//

DELIMITER ;

언급URL : https://stackoverflow.com/questions/66262647/create-function-throws-sql-error-1064-42000