在MySQL中建立帶有IN和OUT引數的儲存過程的方法

2022-05-16 04:25:27 字數 3702 閱讀 5711

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 提公升自我 團隊之中關...