创建函数时 MariaDB 函数语法错误
MariaDB function syntax error when creating a function
我已经实现了这个功能,但无论我添加什么(分隔符),它仍然会抛出同样的错误。
CREATE FUNCTION getNumberOfBuyers(IN userId INT) RETURNS INT
BEGIN
DECLARE numberOfBuyers INT DEFAULT 0;
SELECT COUNT(*) INTO numberOfBuyers FROM buyers WHERE id = userId;
RETURN numberOfBuyers;
END;
错误是:
[42000][1064] 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 'IN userId INT) RETURNS INT BEGIN DECLARE numberOfBuyers
INT DEFAULT 0; ...' at line 1
无法在 mariadb 中将参数标记为输入参数。所以删除声明中的IN
:
CREATE FUNCTION getNumberOfBuyers(userId INT) RETURNS INT
BEGIN
DECLARE numberOfBuyers INT DEFAULT 0;
SELECT COUNT(*) INTO numberOfBuyers FROM buyers WHERE id = userId;
RETURN numberOfBuyers;
END;
一般语法声明如下:
CREATE FUNCTION function_name [ (parameter datatype [, parameter datatype]) ]
RETURNS return_datatype
BEGIN
declaration_section
executable_section
END;
我已经实现了这个功能,但无论我添加什么(分隔符),它仍然会抛出同样的错误。
CREATE FUNCTION getNumberOfBuyers(IN userId INT) RETURNS INT
BEGIN
DECLARE numberOfBuyers INT DEFAULT 0;
SELECT COUNT(*) INTO numberOfBuyers FROM buyers WHERE id = userId;
RETURN numberOfBuyers;
END;
错误是:
[42000][1064] 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 'IN userId INT) RETURNS INT BEGIN DECLARE numberOfBuyers INT DEFAULT 0; ...' at line 1
无法在 mariadb 中将参数标记为输入参数。所以删除声明中的IN
:
CREATE FUNCTION getNumberOfBuyers(userId INT) RETURNS INT
BEGIN
DECLARE numberOfBuyers INT DEFAULT 0;
SELECT COUNT(*) INTO numberOfBuyers FROM buyers WHERE id = userId;
RETURN numberOfBuyers;
END;
一般语法声明如下:
CREATE FUNCTION function_name [ (parameter datatype [, parameter datatype]) ]
RETURNS return_datatype
BEGIN
declaration_section
executable_section
END;