mysql定義過程 定義MySql儲存過程

2021-10-17 22:30:51 字數 2068 閱讀 9958

## 建立乙個不帶返回值的儲存過程 ##

delimiter $$

drop  procedure  if  exists proc_name;  $$

create  procedureproc_name(

in  num1  int,

in  num2  int

begin

set  @a = 2000000001;

set  @d = 20000001;

set  @e = 18200000000;

while@a<2000010001 do

set @b=rand_string(5);

set @c=rand_***(1);

insert  into  students  values(@a, @b, @c, @d, @e);

if @a%100=0  then

set @d=@d+1 ;

end if;

end  while ;

end $$

delimiter;   //注意:delimiter 分號前必須有空格,否則報錯

執行儲存過程:

set  @n1= 1;

set  @n2=10;

callproc_name(@n1, @n2);

## 建立帶有返回值的儲存過程 ##

delimiter  $$

dropprocedure  if  exists  proc_name_out; $$

createprocedure  proc_name_out (

out n int

begin

select   count(*)   into  n  from   employee ;

end$$

delimiter;--  mysql呼叫儲存過程

執行儲存過程:call  proc_employee_getcount(@n) ;

## 建立事務 ##

delimiter  $$

drop   procedure   if   exists   proc_trans;$$

create   procedureproc_trans(

in  p1   varchar(20) ,

in  p2   varchar(50)

begin

declareerr  int  default0;

declarecontinue  handler  forsqlexceptionseterr= 1;   -- 如果出現sql異常,則將err設定為1後繼續執行後面的操作

setautocommit= 0;   -- 開啟事務

-- 批量插入資料 --

insert   into  sy_queryconfig(syq_id)   values(p1);

insert   into  sy_queryconfig(syq_id)   values(p2);

iferr=1 then

rollback;

else

commit;

end if;

end$$

delimiter;

## 建立事務,有任何異常即回滾 ##

delimiter  $$

drop   procedure if   exists proc_trans;$$

create   procedureproc_trans (

in p1 varchar(20),

in p2 varchar(50)

begindeclareexit  handler forsqlexception-- 只要發生異常就回滾begin

rollback ;end ;

-- 返回異常處理結果等其它操作 --

start  transaction ;

insert into sy_queryconfig(syq_id) values(p1);

insert into sy_queryconfig(syq_id) values(p2);

commit ;

end$$

delimiter  ;

MYSQL儲存過程定義案例

drop procedure ifexists tryaddtable delimiter create procedure tryaddtable in tablename varchar 20 in createtablesql varchar 1000 begin declare tablec...

mysql的定義 MySQL定義

什麼是sql sql是結構化查詢語言。什麼是資料庫 資料庫是用來儲存資料的。關聯式資料庫 多張表之間的關係。關聯式資料庫包含表 表名 列 主鍵,通過相應的關係列來產生連線關係。資料庫與資料倉儲 資料庫是用來做交易 transaction 資料倉儲是用來做分析 analytics 資料倉儲的作用在於 ...

MySQL定義函式和儲存過程

預設為off 等價於 0 開啟binlog日誌記錄時,是否信任 建立函式 預設情況下,為了防止主機和從機中定義的函式不一致,不允許使用者自定義函式 如果希望自定義函式,必須將 log bin trust function creators on 1 show variables like log b...