2017-02-10 107 views
1

我正在嘗試使用MySQL函數將記錄插入到永久表中。我的SQL函數的代碼是與此類似: -使用MySQL函數將記錄插入到表中

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。我無法找出原因。有人可以幫助我嗎?

+0

你打算如何使用它? –

+0

我試圖按以下格式使用它: - 從eval_tbl_a選擇fn_eval(a,b,c),a; – Annie

回答

0

使用的查詢是正確的,但是,問題是有一個字段返回重複值。這導致查詢返回OK作爲結果。添加了一些條件來選擇不同的記錄,之後解決了這個問題。

相關問題