mysql中儲存過程

2021-09-07 14:13:58 字數 1483 閱讀 7765

儲存過程,其本質還是函式——但其規定:不能有返回值;

說明:1,in:用於設定該變數是用來「接收實參資料」的,即「傳入」;預設不寫,就是in

2,out:用於設定該變數是用來「儲存儲存過程中的資料」的,即「傳出」,即函式中必須對它賦值;

3,inout:是in和out的結合,具有雙向作用;

4,對於,out和inout設定,對應的實參,就「必須」是乙個變數,因為該變數是用於「接收傳出資料」;

call  儲存過程名 (實參1,實參2,.... )

它應該是在「非程式設計環境中」呼叫,即執行增刪改查的場景下;

舉例1:

#建立乙個儲存過程:

#該儲存過程的目標是:將3個資料寫入到表tab_int;

#並返回該錶的第乙個欄位的前3大值的行

呼叫:

舉例2(使用in,out,inout):

下面使用正確呼叫方法:

drop  procedure  儲存過程名;

//呼叫儲存函式:

$v1 = $_post[『a』];

$v2 = $_post[『b』];

$sql = 「insert  into  tab1  (id,  f2,  f3)  values ( null,  now(),  func1($v1 , $v2 )  )」;

$result  =  mysql_query($sql);

//呼叫儲存過程:

$v1 = $_post[『username』];

$v2 = $_post[『pass』];

$v3 = $_post[『age』];

$sql = 「 call   insert_user($v1, $v2,  $v3 ); 」; //insert_user()是乙個儲存過程,帶3個引數,會將該3個引數資料寫入(insert)某個表中。

$result = mysql_query();

另乙個使用儲存過程返回結果集的例子:

$id = $_get[『id』];

$sql = 「call  get_user_info( $id )  「; //get_user_info()是乙個儲存過程,其中會返回某個指定id的使用者資訊

$result = mysql_query($sql); //這裡得到的就是「結果集」了

mysql中儲存過程

delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 檢視myql中已經存在的儲存過程 show proce...

mysql中儲存過程學習

例項 獲取登入 登出 操作日誌 命令日誌 從系統日誌表查詢,命令日誌表查詢結過儲存到臨時表中,得到所有的日誌,然後按條件進行篩選 create function getlog uname varcharacter 200 starttime datetime,endtime datetime,log...

Oracle中儲存過程

1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...