使用MySQL函数将记录插入表中

时间:2017-02-10 05:50:17

标签: mysql function sql-insert

我正在尝试使用MySQL函数将记录插入永久表。我的SQL函数代码与此类似: -

 delimiter //
    create function fn_eval 
    (
    a varchar(36),
    b int,
    c varchar(36)
    ) 
    returns bigint deterministic
begin
      declare retvalue int default 0;
      insert into eval_tbl(a,b,c,d)
      select a,b,c,d
      from
           ((select a,b,c,d from eval_tbl_1
             inner join eval_tbl_2)
             ON eval_tbl_1.c = eval_tbl_2.c)
           )

      SET retvalue=1;   
      return retvalue;
end //
delimiter ;

试图调用该函数时:

select fn_eval ('1', 2, '3') from dual;

它返回1.但是,在尝试将其用作查询中的内联函数时,它返回OK。我无法弄清楚原因。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

使用的查询是正确的,但是,问题是有某个字段返回重复值。这导致查询返回OK作为结果。添加了一些条件来选择不同的记录,然后解决了这个问题。