programing

MariaDB는 코드를 수동으로 실행해도 작동하는 구문 오류를 발생시키는 이유는 무엇입니까?

javamemo 2023. 6. 14. 21:37
반응형

MariaDB는 코드를 수동으로 실행해도 작동하는 구문 오류를 발생시키는 이유는 무엇입니까?

디렉토리의 모든 파일을 복사하는 Docker 파일이 있습니다./docker-entrypoint-initdb.d디렉토리입니다.다음을 제외한 모든 파일이 완벽하게 포함됩니다.

CREATE OR REPLACE PROCEDURE filterRentalStationByString (
    IN str VARCHAR(255),
    IN cnt INT
)
BEGIN

    SELECT
        r.id,
        r.rental_station_name,
        r.language_id,
        r.address,
        a.street,
        a.city,
        a.house_number,
        a.zip_code

    FROM
        rental_stations r
        INNER JOIN addresses a ON r.address = a.id

    WHERE
        MATCH( zip_code, city, street, house_number ) AGAINST ( str )
        OR
        LOWER( CONCAT( rental_station_name, street, city, house_number, zip_code ) ) LIKE LOWER( CONCAT( '%', str, '%' ) )

    LIMIT
        cnt;

END

Intellij에서 코드를 실행하면 모든 것이 정상적으로 작동하지만 docker-compose로 데이터베이스를 시작하고 설정하려고 하면 다음 오류 메시지가 표시됩니다.

db-mariadb-1 | 2022-10-22 08:13:02+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/03_stored_procedure.sql

db-mariadb-1 | ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 13

이 문제를 해결하고 create 문 앞에 Delimiter를 추가했습니다.

언급URL : https://stackoverflow.com/questions/74162051/why-does-mariadb-raise-a-syntax-error-even-if-running-the-code-manually-it-works

반응형