mysql函數調用存儲過程
1、函數必須指定返回值,且參數默認為IN類型。
2、存儲過程沒返回值,參數可以是 IN,OUT,IN OUT類型,有的人可能會理解成OUT 也算是返回值。
3、調用方式:函數 select my_fun() ;過程 call my_pro( ) ;
4、DEMO
mysql> call my_pro(1,2,@c);
Query OK, 0 rows affected (0.00 sec)
mysql> select @c;
+------+
| @c |
+------+
| 3 |
+------+
1 row in set (0.00 sec)
mysql> select my_fun(1,2);
+-------------+
| my_fun(1,2) |
+-------------+
| 3 |
+-------------+
1 row in set (0.00 sec)
B. MySQL裡面sql語句調用存儲過程,該如何寫
這樣:
CREATEPROCEDUREsp_add(a int, b int,outc int)
begin
set c=a+ b;
end;
調用過程:
call sp_add (1,2,@a);
select @a;
(2)mysql函數調用存儲過程擴展閱讀:
注意事項
存儲過程(stored procere)是一組為了完成特定功能的SQL語句集合,經編譯後存儲在伺服器端的資料庫中,利用存儲過程可以加速SQL語句的執行。
存儲過程分為系統存儲過程和自定義存儲過程。
系統存儲過程在master資料庫中,但是在其他的資料庫中可以直接調用,並且在調用時不必在存儲過程前加上資料庫名,因為在創建一個新資料庫時,系統存儲過程在新的資料庫中會自動創建。
自定義存儲過程,由用戶創建並能完成某一特定功能的存儲過程,存儲過程既可以有參數又有返回值,但是它與函數不同,存儲過程的返回值只是指明執行是否成功,並不能像函數那樣被直接調用,只能利用execute來執行存儲過程。
創建存儲過程
SQL Server創建存儲過程:
create procere 過程名
@parameter 參數類型
@parameter 參數類型
。。。
as
begin
end
執行存儲過程:execute 過程名
C. mysql存儲過程怎麼調用自定義的函數
創建存儲過程
mysql> delimiter $ -- delimiter $是設置 $為命令終止符號,代替默認的分號,因為分號有其他用處.
mysql> create procere sp_test(IN pi_id int, OUT po_name varchar(10))
-> begin
-> select * from test.tb_test;
-> select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id;
-> end
-> $
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ; -- 恢復分號作為分隔終止符號
5.調用存儲過程
mysql> set @po_name='';
Query OK, 0 rows affected (0.00 sec)
mysql> call sp_test(1,@po_name);
D. mysql5.7如何調用寫好的存儲過程
比方說你創建存儲過程的語句如下:
create procere test_proc(count int)
那麼執行存儲過程的語句就是:
call test_proc(500);
E. mysql中的函數和存儲過程的區別
1、通常,函數要明確地返回一個結果值;而過程不用。
然而,事實上可以通過OUTPUT參數來返回多個值
*2、函數不會改變系統的狀態(及數據),而過程可能會改變。
即相同的參數值傳入,函數返回的結果每次都是相同的;但過程並不一定。
因此,
3、函數中,不能使用會改變系統狀態及數據的語句,如DELETE、UPDATE、INSERT、ALTER
F. mysql 能通過函數調用 存儲過程嗎
mysql 能通過函數調用 存儲過程
當然可以,也可以調用其他的函數或者自定義函數,當要看你MYSQL的版本哦
G. mysql 存儲過程和函數的區別
mysql 存儲過程和函數的區別
1、
存儲過程實現的功能要復雜一點,函數實現的功能針對性比較強。
存儲過程,功能強大,可以執行包括修改表等一系列資料庫操作;
用戶定義函數不能用於執行一組修改全局資料庫狀態的操作。
2、
對於存儲過程來說可以返回參數,如記錄集,函數只能返回值或者表對象。
函數只能返回一個變數;而存儲過程可以返回多個;
存儲過程的參數可以有IN,OUT,INOUT三種類型,而函數只能有IN類;
存儲過程聲明時不需要返回類型,而函數聲明時需要描述返回類型,且函數體中必須包含一個有效的RETURN語句。
3、
存儲過程,可以使用非確定函數,不允許在用戶定義函數主體中內置非確定函數。
4、
存儲過程一般是作為一個獨立的部分來執行( EXECUTE 語句執行),而函數可以作為查詢語句的一個部分來調用(SELECT調用)。
由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。 SQL語句中不可用存儲過程,而可以使用函數。