重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

MySQLcreatefunction时报错

MySQL create function时报错
mysql> delimiter $$
mysql> CREATE FUNCTION is_ChangeDescColumnExist (THE_VERSION_LEVEL_TABLE_NAME VARCHAR(35)) RETURN INT DETERMINISTIC
    ->     BEGIN
    -> DECLARE nbr INT;
    ->     SET nbr =0;
    -> /*        DECLARE CONTINUE HANDLER FOR NOT FOUND RETURN 0;*/
    ->         select count(*) into nbr from information_schema.columns where table_name = THE_VERSION_LEVEL_TABLE_NAME and
    ->         (column_name ='C_CHANGE_DESCRIPTION');
    ->         IF nbr = 1 THEN
    ->             RETURN 1;
    ->         ELSE
ELSE    ELSEIF  
    ->         ELSE
    ->             RETURN 0;
    ->         END IF;
    ->     END$$
ERROR 1064 (42000): 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 'RETURN INT DETERMINISTIC
    BEGIN
DECLARE nbr INT;
    SET nbr =0;

        sel' at line 1

报错原因:
RETURN INT DETERMINISTIC语句中返回关键字应该是RETURNS

修改后,创建函数正常
delimiter $$
CREATE FUNCTION is_ChangeDescColumnExist (THE_VERSION_LEVEL_TABLE_NAME VARCHAR(35)) RETURNS INT DETERMINISTIC
    BEGIN
    DECLARE nbr INT;
    SET nbr =0;
/*        DECLARE CONTINUE HANDLER FOR NOT FOUND RETURN 0;*/
        select count(*) into nbr from information_schema.columns where table_name = THE_VERSION_LEVEL_TABLE_NAME and
        (column_name ='C_CHANGE_DESCRIPTION');
        IF nbr = 1 THEN
            RETURN 1;
        ELSE        
            RETURN 0;
        END IF;
    END$$

文章标题:MySQLcreatefunction时报错
网站地址:http://cqcxhl.com/article/gdoiod.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP