當前位置:首頁 » 服務存儲 » mysql調用存儲過程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql調用存儲過程

發布時間: 2022-01-21 12:59:51

Ⅰ 請求mysql存儲過程,怎麼調用

正常調用:
call procere_name();
其他調用的話請說出你的調用環境。

Ⅱ mysql中的存儲過程怎麼使用

存儲過程(Stored Procere)是一組為了完成特定功能的SQL語句集功能是將常用或復雜的工作,預先用SQL語句寫好並用一個指定名稱存儲起來, 以後需要資料庫提供與已定義好的存儲過程的功能相同的服務時,只需調用 call 存儲過程名字, 即可自動完成命令。存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,可由應用程序通過一個調用來執行,而且允許用戶聲明變數 。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。

Ⅲ 如何用mysql觸發器調用存儲過程

這個性能問題很多都是相對的,譬如如果你不用存儲過程,那應用伺服器和資料庫伺服器的交互就會增多,這樣也導致性能降低。一般而言,存儲過程的使用降低應用的負載,更多的要考慮使用的合理性。譬如觸發器過多也會影響你操作表的速度,因而你應該根據系統自身情況去分析設計

Ⅳ mysql存儲過程中調用另一個存儲過程需要配置嗎

mysql存儲過程中調用另一個存儲過程需要配置嗎
你創建一個存儲過程C
先執行存儲過程A,並得到返回值
再判斷返回值執行存儲過程B
例如:
mysql> \d //
mysql> create procere test(v_name char(20),out v_id int)
-> BEGIN
-> SELECT id into v_id from t1 WHERE name=v_name;
-> END;
-> //

mysql> create procere test1(v_id int,out v_name char(20))
-> BEGIN
-> SELECT name into v_name from t2 where id=v_id;
-> END;
-> //

mysql> create procere test2(inout v_name char(20))
-> BEGIN
-> DECLARE v_id int;
-> CALL test(v_name,v_id);
-> CALL test1(v_id,v_name);
-> END;
-> //

mysql> set @aa='xx『//
Query OK, 0 rows affected (0.00 sec)
mysql> call test2(@aa) //
Query OK, 0 rows affected (0.01 sec)
mysql> select @aa//
+------+
| @aa |
+------+
| x2 |
+------+
1 row in set (0.00 sec)

Ⅳ Mysql里如何使用存儲過程

CREATE DEFINER 存儲過程名
@變數1 類型 ----這里個就是傳進來的
@變數2 類型 output ----這個是定義輸出變數
as
declared @變數 類型,@變數 類型 --這里是定義內部變數 只能這是過程用
if 條件
begin
#¥%……&*
end
else
begin
#¥%……&
end
-----不知道你要什麼
execute 資料庫名.dbo.過程名 -----這個是 在這個過程里 調用別的過程

Ⅵ mysql 怎麼執行帶有參數的存儲過程

call sp_add();
是不是你定義的過程有問題吧,並沒有指出返回結果來
像我這樣是可以的:

CREATE PROCEDURE sp_add(a int, b int,out c int)
begin

set c=a+ b;

end;
調用過程:
call sp_add (1,2,@a);
select @a;

Ⅶ mysql 存儲過程怎麼調用

ASP中如何調用存儲過程1 這也是最簡單的方法,兩個輸入參數,無返回值:
set connection = server.createobject("adodb.connection")
connection.open someDSN
Connection.Execute "procname varvalue1, varvalue2"

'將所有對象清為nothing,釋放資源
connection.close
set connection = nothing

2 如果要返回 Recordset 集:
set connection = server.createobject("adodb.connection")
connection.open someDSN
set rs = server.createobject("adodb.recordset")
rs.Open "Exec procname varvalue1, varvalue2",connection

'將所有對象清為nothing,釋放資源
rs.close
connection.close
set rs = nothing
set connection = nothing

3 以上兩種方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。
首先說明,返回值有兩種。一種是在存儲過程中直接return一個值,就象C和VB的函數返回值那樣;
另一種是可以返回多個值,存儲這些值的變數名稱需要在調用參數中先行指定。
這個例子要處理多種參數,輸入參數,輸出參數,返回記錄集以及一個直接返回值(夠全了吧?)
存儲過程如下:

use pubs
GO

-- 建立存儲過程
create procere sp_PubsTest

-- 定義三個參數變數,注意第三個,特別標記是用於輸出
@au_lname varchar (20),
@intID int,
@intIDOut int OUTPUT

AS

SELECT @intIDOut = @intID + 1

SELECT *
FROM authors
WHERE au_lname LIKE @au_lname + '%'

--直接返回一個值
RETURN @intID + 2

調用該存儲過程的asp程序如下:

<%@ Language=VBScript %>
<%
Dim CmdSP
Dim adoRS
Dim adCmdSPStoredProc
Dim adParamReturnValue
Dim adParaminput
Dim adParamOutput
Dim adInteger
Dim iVal
Dim oVal
Dim adoField
Dim adVarChar

『這些值在 VB 中是預定義常量,可以直接調用,但在 VBScript 中沒有預定義
adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200

iVal = 5
oVal = 3

'建一個command對象
set CmdSP = Server.CreateObject("ADODB.Command")

'建立連結
CmdSP.ActiveConnection = "Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs"

'定義command 對象調用名稱
CmdSP.CommandText = "sp_PubsTest"

'設置command調用類型是存儲過程 (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc

'往command 對象中加參數
'定義存儲過程有直接返回值,並且是個整數,省缺值是4
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)
'定義一個字元型輸入參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")
'定義一個整型輸入參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)
'定義一個整型輸出參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)

'運行存儲過程,並得到返回記錄集
Set adoRS = CmdSP.Execute

'把每個記錄列印出來,其中的欄位是虛擬的,可以不用管
While Not adoRS.EOF

for each adoField in adoRS.Fields
Response.Write adoField.Name & "=" & adoField.Value & "<br>" & vbCRLF
Next
Response.Write "<br>"
adoRS.MoveNext
Wend

'列印兩個輸出值:
Response.Write "<p>@intIDOut = 「 & CmdSP.Parameters("@intIDOut").Value & "</p>"
Response.Write "<p>Return value = " & CmdSP.Parameters("RETURN_VALUE").Value & "</p>"

Set adoRS = nothing
Set CmdSP.ActiveConnection = nothing
Set CmdSP = nothing

Ⅷ mysql怎麼執行一個存儲過程

給你個例子
drop procere if exists call proc_temp;
delimiter $ //存儲過程從$ 開始
create procere proc_temp(
IN startDate VARCHAR(20),//設置傳入的變數,沒有可以不要傳
IN endDate VARCHAR(20))
BEGIN
DECLARE dflag INT(11); //這里可以定義你需要的僅在存儲過程里使用的變數
SET dflag = 0;//初始化
select * from table where time between startDate and endDate ;//你的sql語句,可以一句可以多句
END $//存儲過程從$ 結束
delimiter ;
當上面的選中運行後沒問題,可以選中下面的call xx 運行,上面的代碼沒有改動的話只需要運行一次
call proc_temp("2017-07-05","2017-08-05")

Ⅸ mysql里邊,存儲過程之間相互調用

問題是這樣,需要對mysql資料庫中的一張表做備份操作,資料庫在linux上,考慮用crontab對表定時備份,這張表是利用存儲過程生成的,需要寫一個shell腳本,調用mysql的這個存儲過程,並且在shell中對生成的表做備份操作。