国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL5的存儲過程詳細(xì)實(shí)例

2024-07-24 12:38:52
字體:
供稿:網(wǎng)友

本文章來介紹一下關(guān)于mysql5的新特性存儲過程了,在mysql5之前是沒有存儲過程這一說的,下面我們來看看mysql5存儲過程的用法.

MySQL 5.0:新特性教程是為需要了解5.0版本新特性的MySQL老用戶而寫的,簡單的來說是介紹了“存儲過程、觸發(fā)器、視圖、信息架構(gòu)視圖.

格式:

  1. CREATE PROCEDURE 過程名 ([過程參數(shù)[,...]]) 
  2. [特性 ...] 過程體 
  3.  
  4. CREATE FUNCTION 函數(shù)名 ([函數(shù)參數(shù)[,...]]) 
  5. RETURNS 返回類型 
  6. [特性 ...] 函數(shù)體 

過程參數(shù):[ IN | OUT | INOUT ] 參數(shù)名 參數(shù)類型

函數(shù)參數(shù):參數(shù)名 參數(shù)類型

返回類型:有效的MySQL數(shù)據(jù)類型即可

特性:

  1. LANGUAGE SQL 
  2. | [NOT] DETERMINISTIC 
  3. | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 
  4. | SQL SECURITY { DEFINER | INVOKER } 
  5. | COMMENT 'string' 

過程體/函數(shù)體:格式如下:

  1. BEGIN 
  2. 有效的SQL語句 
  3. END 

實(shí)例:

  1. DELIMITER $$ 
  2. DROP PROCEDURE IF EXISTS `spTest` $$ 
  3. CREATE PROCEDURE `spTest`(p_title VARCHAR(200), p_description TEXT)  --Vevb.com 
  4. DETERMINISTIC 
  5. BEGIN 
  6. INSERT INTO category (title, description) 
  7. VALUES (p_title, p_description); 
  8. END $$ 
  9. DELIMITER ; 

其中DELIMITER是用來決定SQL分隔符號的,在寫Stored Procedure前,要先把預(yù)設(shè)的分號換掉,寫完 Stored Procedure 的 routine_body 后,再回復(fù)成預(yù)設(shè)的分號.

--刪除:drop procedure if exists up_common_select

--創(chuàng)建

  1. CREATE  PROCEDURE `up_common_select`( 
  2.  in t_name varchar(50) 
  3. begin 
  4.  declare v_sql varchar(500); 
  5.  set v_sql= concat('select * from ',t_name); 
  6.  select v_sql; 
  7.  -- 

--注意:prepare(預(yù)處理)execute stmt using @var,只能跟@var變量,declare和傳入的變量不行!!!

  1. set @v_sql=v_sql; 
  2.  
  3.  prepare stmt from @v_sql; 
  4.  EXECUTE stmt ; 
  5.  deallocate prepare stmt; 
  6.  
  7. end

--調(diào)用:call up_common_select('admin_authority');

注意事項(xiàng):

1  mysql5.0.13之后支持在存儲過程中調(diào)用prepare

2, prepare stmt from 'select * from ?';(錯(cuò))

mysql5.0.24,prepare尚不支持 表名做變量!

解決方案:用 contat()函數(shù),組合字符串

3. execute stmt [using @var,@var2]

必須是@var形式的變量,傳入的參數(shù)變量,declare變量不行

4.deallocate prepare stmt; 顯式的釋放prepare,如果不釋放,mysql會釋放,!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 进贤县| 海伦市| 天门市| 治县。| 商洛市| 息烽县| 崇明县| 中卫市| 迁西县| 犍为县| 库车县| 东海县| 汽车| 修水县| 萍乡市| 漳浦县| 泗洪县| 宣威市| 海林市| 泰兴市| 女性| 宾川县| 景洪市| 潼关县| 张北县| 太保市| 德江县| 内黄县| 开鲁县| 凌云县| 黑山县| 墨玉县| 牡丹江市| 九龙县| 徐汇区| 嵊州市| 古蔺县| 抚松县| 上杭县| 萝北县| 阿巴嘎旗|