簡體   English   中英

我可以覆蓋MySQL存儲過程中的IN參數

[英]Can I overwrite IN parameter within a MySQL stored procedure

我可以覆蓋MySQL存儲過程中的IN參數嗎?

也就是說,我可以做類似的事情:

create procedure proc1 (IN p_parm1 int)
begin
  if p_parm1 is null then
    **set p_parm1 = -1;**
  end if
end $$

您應該這樣自己進行測試:

mysql> create procedure proc1 (IN p_parm1 int) begin
 if p_parm1 is null then
   set p_parm1 = -1;
 end if; 
 select p_parm1;
end$$
Query OK, 0 rows affected (0.02 sec)

mysql> call proc1(123)$$
+---------+
| p_parm1 |
+---------+
|     123 |
+---------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> call proc1(null)$$
+---------+
| p_parm1 |
+---------+
|      -1 |
+---------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

因此答案是肯定的,您可以更改輸入的值。 在您的示例中,您可以有效地為輸入參數提供默認值(如果它為null)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM