gpt4 book ai didi

sql - 为什么即使手动运行代码 MariaDB 也会引发语法错误?

转载 作者:行者123 更新时间:2023-12-05 05:32:19 25 4
gpt4 key购买 nike

我有一个 Dockerfile,它将目录中的所有文件复制到 /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 [注意] [入口点]:/usr/local/bin/docker-entrypoint.sh: running/docker-entrypoint-initdb.d/03_stored_procedure.sql

db-mariadb-1 |第 1 行的错误 1064 (42000):您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 13 行的 '' 附近使用的正确语法

最佳答案

解决了这个问题,我在create语句前加了一个DELIMITER。

关于sql - 为什么即使手动运行代码 MariaDB 也会引发语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74162051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com