首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql存储过程out id返回null

问MySql存储过程out id返回null
EN

Stack Overflow用户
提问于 2019-01-23 13:15:03
回答 1查看 59关注 0票数 0

我有一个存储过程,插入到地址表中,它有3个in参数和1个out参数。如果我调出此过程,parametr为null

代码语言:javascript
复制
CREATE DEFINER=`root`@`localhost` 
PROCEDURE `insert_adress`(
                        in d varchar(50),
                        in r varchar(50),
                        in c varchar(50),
                        in adress_text varchar(255),
                        out id int)
BEGIN
    declare disc_id int;
    declare reg_id int;
    declare coun_id int;


if ((select count(*) from district where district.dist like d) <> 0)
    then set disc_id := (select id from district where district.dist like d);
    else
        insert into district(dist) values(d);
        set disc_id := (select max(id) from district);
end if;

if ((select count(*) from region where region.reg like r) <> 0)
    then set reg_id := (select id from region where region.reg like r);
    else
        insert into region(reg) values(r);
        set reg_id := (select max(id) from region);
end if;

if ((select count(*) from country where country.coun like c) <> 0)
    then set coun_id := (select id from country where country.coun like c);
    else
        insert into country(coun) values(c);
        set coun_id := (select max(id) from country);
end if;

insert into adress(district,region,country,adress_text) values(disc_id,reg_id,coun_id,adress_text);
set id := (select max(id) from adress);   
END

我称之为:

代码语言:javascript
复制
set @id = 0;
call mustaqil.insert_adress('test1', 'test1', 'test1', 'test1', @id);
select @id;

Region,Country表有'test1‘行,但out id,disc_id,reg_id,coun_id应该是null。S:存储过程插入行

EN

回答 1

Stack Overflow用户

发布于 2019-01-23 13:33:58

只需更改设置id := (从地址中选择最大( id ));将最大(Id)从地址中选择为id;它应该可以工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54320419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档