mariadb 函数中未声明的变量 compid

问题描述

我尝试创建函数以通过电话号码(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

解决方法

错误消息试图告诉您。您需要先 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