偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL觸發(fā)器應(yīng)用與其存儲過程的實際操作

數(shù)據(jù)庫 MySQL
今天我們主要向大家描述的是MySQL觸發(fā)器的實際應(yīng)用與其存儲過程的實際操作,以下就是文章的詳細(xì)內(nèi)容描述,望你看完會有所收獲。

以下的文章主要描述的是MySQL觸發(fā)器的實際應(yīng)用與其存儲過程的實際操作,以下的文章將會給你提供相應(yīng)的詳細(xì)方案講解,以下就是相關(guān)內(nèi)容的具體描述。希望會給你帶來一些幫助在此方面。

觸發(fā)器:

MySQL數(shù)據(jù)庫創(chuàng)建觸發(fā)器的格式如下:

create trigger <觸發(fā)器名稱>

{ before | after}

 

{insert | update | delete}

 

on <表名>

 

for each row

 

<觸發(fā)器SQL語句>

 

 

<觸發(fā)器SQL語句>:觸發(fā)器要執(zhí)行的SQL語句,如果該觸發(fā)器要執(zhí)行多條SQL語句,要將多條語句放在begin…end塊中。

Show triggers 顯示所有的觸發(fā)器信息!

 

存儲過程:

 

創(chuàng)建 

  1. DELIMITER $$  
  2. DROP PROCEDURE IF EXISTS `test`.`outprint`$$  
  3. CREATE PROCEDURE print1(out a varchar(100))  
  4. BEGIN  
  5. select name from info into a;  
  6. END$$  
  7. DELIMITER ;  

調(diào)用

  1. Call print1(@c);  
  2. Select @c;  

注意

這樣傳值只能查找一個值賦給a

Select * from info into a就錯了

Show create {procedure | function } 名字

 

查看存儲過程和函數(shù)

 

Drop {procedure | function} [if exists] 名字

 

Alter {procedure | function} 名字

 

 

注意:通過 begin end 可以來包含多個語句,每個語句以“;”結(jié)尾。

 

 

創(chuàng)建插入

  1. DELIMITER $$  
  2. DROP PROCEDURE IF EXISTS `test`.`insert_info`$$  
  3. CREATE DEFINER=`root`@`%` PROCEDURE `insert_info`(in id int(5),in name varchar(50),in age int(5))  
  4. begin  
  5. insert into info values (id,name,age);  
  6. end$$  
  7. DELIMITER ;  

調(diào)用

 

  1. call insert_info(2,'rrr',56); 

 

創(chuàng)建插入輸出(驗證密碼用)

 

  1. Delimiter $$   
  2. Create procedure validateuser  
  3. (in username varchar(20),out param1 varchar(100))   
  4. Begin   
  5. Select Pwd into param1 from welefen.user   
  6. where Name=username;   
  7. End $$ 

 

調(diào)用

 

 

  1. call check1('sss',@pw);  
  2. select @pw; 

驗證角谷猜想

 

角谷猜想:給定一個整數(shù)x,若x%2=1,則x=3*x+1,

 

否則x=x/2,

 

如此循環(huán)下去

 

,經(jīng)過有限步驟必 能得到1。

 

例如: 初始整數(shù)為9 則

 

9->28->14->7->22->11->34->17->52->26

 

->13->40->20->10->5->16->8->4->2->1

 

為了說明存儲過程語法的應(yīng)用,存儲過程來實現(xiàn)它:

 

創(chuàng)建存儲過程:

  1. delimiter $$  
  2. drop procedure if exists jgguess$$  
  3. create procedure jgguess(in number int)   
  4. begin   
  5. declare param1 int default 1;   
  6. set @a=concat(number);   

jiaogu:loop #循環(huán)開始

set param1=number%2;

if param1=1 then set number=number*3+1; #number 為奇數(shù),將它乘3加 1

else set number=number/2;

end if;

set @a=concat(@a,'->',number);

if number>1 then iterate jiaogu; #number 不為 1,繼續(xù)循環(huán)

else

leave jiaogu; #退出循環(huán)

  1. end if;  
  2. end loop jiaogu;   
  3. end $$   
  4. delimiter ;  

 

調(diào)用:

  1. call jgguess(9);  
  2. select @a;  

 

 

以上的相關(guān)內(nèi)容就是對MySQL中觸發(fā)器和存儲過程的介紹,望你能有所收獲。

 

【編輯推薦】

  1. MySQL觸發(fā)器如何正確使用
  2. MySQL修改root密碼并不難
  3. 恢復(fù)MySQL數(shù)據(jù)庫root密碼2方案
  4. MySQL數(shù)據(jù)表中字段的批量修改與復(fù)制
  5. MySQL查詢優(yōu)化的5個好用方法

 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-05-18 14:35:06

MySQL觸發(fā)器

2010-05-26 14:55:43

MySQL存儲過程

2010-06-13 09:46:44

MySQL5觸發(fā)器

2010-04-26 14:12:23

Oracle使用游標(biāo)觸

2010-04-07 13:02:14

Oracle 存儲過程

2010-06-04 14:18:10

MySQL 分頁存儲過

2010-05-26 17:57:44

MySQL 觸發(fā)器

2010-07-23 14:26:37

SQL Server存

2010-05-18 09:31:05

MySQL修改表

2010-03-30 12:50:42

Oracle存儲

2010-07-21 14:21:53

SQL Server存

2010-05-27 15:11:44

MySQL保存

2010-05-18 17:39:13

MySQL alter

2010-04-27 15:11:20

Oracle樹的存儲過

2010-08-05 14:34:26

DB2存儲過程

2010-05-17 13:28:15

MySQL 復(fù)制

2010-04-23 13:29:01

Oracle存儲過程

2010-06-12 13:39:33

MySQL操作blob

2010-05-17 11:26:49

MySQL 多級同步

2010-05-25 16:31:23

MySQL配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號