有一个变量,我在 function 和 procedure 中都声明了,都没错但是只要在 function 中一返回这个变量,客户端就报错了,这是为什么呢,如下图

解决方案 »

  1.   

    你这语法不对
    mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
        -> RETURN CONCAT('Hello, ',s,'!');
        -> //
    Query OK, 0 rows affected (0.00 sec)
      

  2.   

    语法错误的时候有时看一下手册中的语法说明或许会有帮助。CREATE
        [DEFINER = { user | CURRENT_USER }]
        FUNCTION sp_name ([func_parameter[,...]])
        RETURNS type
        [characteristic ...] routine_body
      

  3.   

    嗯, 谢谢了,自己改了一下,发现如果要定义 函数 的话,是需要有返回值类型。发现各个数据库用的SQL不太一样,我是个新手,另外再问两个问题,各位神给看看。1 如果返回值不确定,可以将函数编成功呢?2 想写一个函数,就是看看某个表里面有多少个数据,如果多余10,那么把最前面的三个删掉,并且把第四个至第十个的 ID 变成 1-7;写了一个大概的,帮忙看看吧,跪谢了
    BEGIN
    DECLARE XX INT DEFAULT 1;
    SET XX = 3;
    INSERT INTO records(user, content) VALUES('1', 'Garry');SET XX = SELECT COUNT(*) FROM records;// 老说我这有错// 后面不会了RETURN XX;
    END
      

  4.   

    SELECT COUNT(*) into XX FROM records;