1樓:匿名使用者
mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地
2樓:位紹鎮承恩
在mysql
中建立儲存過程的語法很難記,除非你經常跟儲存過程打交道,原因很簡單,語法不是什麼小笑話。如果你通過命令列控制
mysql,你需要記住準確的語法。乙個快速示例可以很好的幫助你做到這點。在mysql
入門教程中,我們能夠看到很多關於如何建立儲存過程
和如何利用in和
out引數呼叫儲存過程的示例。這些示例都很簡單,能夠很好的幫助你理解
mysql
中建立帶引數儲存過程的語法。這些示例已在
mysql
5.5中通過測試。我們將用下面的雇員表建立並測試這些儲存過程:
mysql>
select
*from
employee;
+--------+----------+---------+--------+
|emp_id
|emp_name
|dept_id
|salary
|+--------+----------+---------+--------+
|103
|jack|1
|1400||
104|
john|2
|1450||
108|
alan|3
|1150||
107|
ram|
null
|600
|+--------+----------+---------+--------+
4rows
inset
(0.22
sec)
建立和使用帶in引數的mysql儲存過程
下面是乙個命令列方式建立mysql存過的例子,我們根據
department從employee表中獲取乙個總數,dept_id是department表的
外來鍵。mysql>
delimiter
//mysql>
create
procedure
usp_totalemployeebydeparment(in
idint)
->begin
->select
count(*)
astotal
from
employee
where
dept_id
=id;
->end//
query
ok,0
rows
affected
(0.00
sec)
mysql>
delimiter
;首先我們改變預設的分隔符為「//」來作為儲存過程結束的標識,隨後再恢復預設值。使用「usp」字首是區分系統存過過程和使用者自定義儲存過程的最佳實踐。現在你可以在mysql命令列像這樣來呼叫存過:
mysql>
call
usp_totalemployeebydeparment(2);
+-------+
|total
|+-------+|1
|+-------+
1row
inset
(0.06
sec)
建立和使用帶in和out引數的儲存過程
在這個mysql例子中,我們建立了乙個in和乙個out引數的儲存過程
usp_getemployeename。當呼叫這個儲存過程時,你需要傳遞2個引數:id和name,乙個作為輸入引數id,另外乙個作為輸出引數返回結果。
mysql>
delimiter
//mysql>
create
procedure
usp_getemployeename(in
idint,
outname
varchar(20))
->begin
->select
emp_name
into
name
from
employee
where
emp_id
=id;
->end//
query
ok,0
rows
affected
(0.52
sec)
mysql>
delimiter
;mysql>
call
usp_getemployeename(103,
@name);
query
ok,1
rowaffected
(0.05
sec)
以mysql命令列方式呼叫存過:
mysql>
select
@name;
+-------+
|@name
|+-------+
|jack
|+-------+
1row
inset
(0.00
sec)
這就是怎樣從命令列方式建立和呼叫儲存過程的所有內容,在這個教程中,我們建立了帶in和out引數的儲存過程多個例子。這是記住mysql資料庫存過語法的最好方式。
建立乙個帶in、和out的二個引數的儲存過程,然後簡單的呼叫,應該如何實現啊
3樓:匿名使用者
--建立
create proc test--輸入乙個引數然後賦值給傳出引數@str_in char(20),--定義輸入引數@str_out char(20) output--定義輸出引數asset @str_out=@str_in--呼叫
declare @r_out char(20) --定義傳出引數做呼叫時用
exec test 'aaa',@r_out output --print @r_out --列印接收到的傳出引數值
4樓:匿名使用者
mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地
mysql怎麼呼叫out引數的儲存過程?
5樓:匿名使用者
mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地
6樓:匿名使用者
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 在乙個儲存過程呼叫另外乙個儲存過程(帶乙個in引數)
7樓:匿名使用者
mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地
為什麼在MySQL資料庫中建立檢查約束不成功呢,語句是這樣的
mysql檢查約束是有問題。只是注釋的作用。在程式控制吧 這是一項新功能,用於指定在插入或更新到一行之前檢查值的條件。如果表的任何行的搜尋條件的結果為 false,則約束可能返回錯誤 但如果結果為 unknown 或 true,則約束不會返回錯誤 此功能開始在 mysql 8.0.16 上執行,在以...
怎樣在Sql server中建立,執行和刪除儲存過程
建立儲存過程 create procedure 儲存過程名 形參表 as 儲存過程體 執行儲存過程 execute 儲存過程名 實參表刪除儲存過程 drop procedure 儲存過程名儲存過程 stored procedure 是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資...
在團隊中如何建立威信
威信是領導必備的條件,那又如何才能擁有威信 建立威信呢?1 以身作則 身為領導者,乙個最簡單直接的影響別人的方法是以身作則。通過以身作則來領導或者影響他人。以身作則所要做的重點是傳播企業文化,當然也可以是其他方面,作為領導,你可以通過你自身的行動來傳播價值觀和傳達各種期望。2 提公升自我 團隊之中關...