关于创建函数的MySQL错误#1064

时间:2014-02-27 16:45:43

标签: mysql

这是我的代码:

create function getten() returns integer
begin
return 10;
end

给我错误信息:

1064 - 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 '' at line 3 

我不知道''就是这样。有什么帮助吗?

5 个答案:

答案 0 :(得分:2)

首先,SQL代码用大写字母书写。 其次,请记住缩进。

DELIMITER $$
CREATE FUNCTION getten()
  RETURNS INTEGER
  LANGUAGE SQL
BEGIN
  RETURN 10;
END;
$$
DELIMITER ;

应该像这样工作。

答案 1 :(得分:1)

这对我有用......

DELIMITER $$
 CREATE FUNCTION getten()
  RETURNS INTEGER
  BEGIN
  RETURN 10;
  END;
 $$

DELIMITER ;

SELECT getten();
+----------+
| getten() |
+----------+
|       10 |
+----------+

答案 2 :(得分:0)

试试这个你需要在函数中定义返回类型

DELIMITER $$

CREATE

    FUNCTION `getten`()
    RETURNS INTEGER

    BEGIN
RETURN 10;
    END$$

DELIMITER ;

创建后你可以像

一样使用它
SELECT `getten`()

答案 3 :(得分:0)

如果只有一个语句要执行,则无需使用begin - end

create function getten() returns integer return 10;

否则,您需要使用默认语法来绑定begin - end块中的多个语句。

为了限制数据库引擎在semi colon找到默认语句关闭指令时立即解释语句,我们使用自定义delimiter

delimiter //

create function getten() returns integer
begin 
  return 10; 
end;
//

delimiter ;

使用块类型主体而不是使用内联单个语句是一个好习惯。

答案 4 :(得分:0)

你的所有答案都很棒,但只有在'开始'之前加上'确定性'后才有效。

非常感谢。