【问题标题】:Undeclared variable compid in mariaddb functionmariaddb 函数中未声明的变量 compid
【发布时间】:2020-12-28 15:43:50
【问题描述】:

我尝试创建通过电话号码(varchar)获取公司ID的函数

CREATE OR REPLACE FUNCTION getIdByPhone (cp CHAR(255))
RETURNS  INT
BEGIN 
SELECT id into compid 
FROM companies 
WHERE comp_phone1=cp;
RETURN compid;
END;

并且有错误:

Undeclared variable: compid

【问题讨论】:

    标签: mysql sql mariadb sql-function


    【解决方案1】:

    错误信息试图告诉你。您需要 declare 变量才能分配给它:

    delimiter //
    
    create function getidbyphone (cp char(255))
    returns int
    deterministic
    begin 
        declare compid int;
        select id into compid from companies where comp_phone1 = cp;
        return compid;
    end
    //
    
    delimiter;
    

    这是一个Demo on DB Fiddle

    【讨论】:

    • 我试过了,但我仍然有错误:在 'en 附近使用的语法
    • @mocart:我修复了代码中的一些小故障,并添加了一个指向 db fiddle 的链接。这确实适用于您的示例数据。
    猜你喜欢
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多