最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql心得分享:存儲過程

 更新時間:2014年07月15日 08:40:51   投稿:hebedich  
MySQL 5.0以后的版本開始支持存儲過程,存儲過程具有一致性、高效性、安全性和體系結構等特點,本文主要來分享下本人關于存儲過程的一些心得體會。
use test;

drop table if exists t8;
CREATE TABLE t8(s1 INT,PRIMARY KEY(s1));

drop procedure if exists handlerdemo;

DELIMITER $$
CREATE PROCEDURE handlerdemo()
BEGIN
declare xx int default 4;
DECLARE oh_no condition for sqlstate '23000';
#DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @X2=1;
declare exit handler for oh_no set @info='違反主鍵約束';
SET @X=1;
INSERT INTO t8 VALUES(1);
SET @X=2;
INSERT INTO t8 VALUES(1);
SET @X=3;
END

調用存儲過程

/* 調用存儲過程*/
CALL handlerdemo();

/* 查看調用存儲過程結果*/
SELECT @X,@info;

心得體會:

1、語句結束符

也許mysql是將存儲過程、自定義函數(shù)看作一條語句的,因此,存儲過程里多條語句用“;”隔開,為了避免沖突,就要用delimiter 重新定義結束符。

一般可以在存儲過程開始前,定義新的結束符,如

delimiter //

存儲過程書寫完畢以后,再恢復定義:delimiter ;

但也可以在存儲過程開始前,這樣寫 delimiter $$,但存儲過程后不可以再寫別的語句了。如上面的例子

2、變量

mysql的變量,跟SQL SERVER一樣,形如 @X ,但無需聲明,直接使用。

而在存儲過程里面,變量無須用 @,但要聲明。并且聲明要放在存儲過程的頭部(?),如本例,否則報錯。真奇怪啊,一方面,有時候變量無須聲明就可以使用,另一方面,有時候又要限定聲明位置,令人無所適從,似乎隨便了點。

存儲過程內部的變量,作用范圍僅限于存儲過程。但那些帶@的變量,卻仿佛可以跨越會話和連接,看上去是全局變量?如上面的例子。

3、條件和處理

定義條件,是為了給處理調用。如上面的例子:

DECLARE oh_no condition for sqlstate '23000';
#DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @X2=1;
declare exit handler for oh_no set @info='違反主鍵約束';

相關文章

  • mysql的union和union all用法詳解

    mysql的union和union all用法詳解

    union 和 union all 的區(qū)別是,union 會自動壓縮多個結果集合中的重復結果,而 union all 則將所有的結果全部顯示出來,不管是不是重復,本文給大家介紹mysql的union和union all用法,感興趣的朋友一起看看吧
    2023-08-08
  • Mysql中的多級復制方式

    Mysql中的多級復制方式

    這篇文章主要介紹了Mysql中的多級復制方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL將版本由5.7.37更新到5.7.39的實現(xiàn)方式

    MySQL將版本由5.7.37更新到5.7.39的實現(xiàn)方式

    這篇文章主要介紹了MySQL將版本由5.7.37更新到5.7.39的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No的解決方法[已測]

    MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No的解決方法[已測

    為了服務器更好的安全特將mysql服務器同步一下,show slave status\G出現(xiàn)了Slave_IO_Running: No 錯誤,特整理了下,方便以后配置
    2011-06-06
  • 詳解MySQL 外鍵約束

    詳解MySQL 外鍵約束

    這篇文章主要介紹了MySQL 外鍵約束的相關資料,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL之高可用集群部署及故障切換實現(xiàn)

    MySQL之高可用集群部署及故障切換實現(xiàn)

    這篇文章主要介紹了MySQL之高可用集群部署及故障切換實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • mysql中DATE_FORMAT()函數(shù)的具體使用

    mysql中DATE_FORMAT()函數(shù)的具體使用

    在MySQL中,DATE_FORMAT()函數(shù)用于將日期/時間類型的值按照指定的格式進行格式化輸出,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • MySQL 游標的作用與使用相關

    MySQL 游標的作用與使用相關

    這篇文章主要介紹了MySQL游標的相關資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-01-01
  • MySQL快速復制數(shù)據(jù)庫數(shù)據(jù)表的方法

    MySQL快速復制數(shù)據(jù)庫數(shù)據(jù)表的方法

    有些時候,我們?yōu)榱丝焖俅罱ㄒ粋€測試環(huán)境,或者說是克隆一個網(wǎng)站,需要復制已經(jīng)存在的mysql數(shù)據(jù)庫。下面小編給大家介紹mysql快速復制數(shù)據(jù)庫數(shù)據(jù)表的方法,小伙伴們跟著小編一起學習吧
    2015-10-10
  • windows 下忘記mysql root密碼的更改方法

    windows 下忘記mysql root密碼的更改方法

    mysql數(shù)據(jù)庫忘記了root密碼是件很痛苦的事,本文介紹如何解決windows環(huán)境下mysql服務器忘記root密碼的解決方法,需要的朋友可以參考下
    2016-10-10

最新評論

鄂托克前旗| 安远县| 洱源县| 尖扎县| 甘德县| 丰镇市| 张掖市| 昌平区| 玉田县| 泸溪县| 富源县| 融水| 鹿泉市| 荥阳市| 秭归县| 新河县| 体育| 沈阳市| 淮安市| 清远市| 杭锦后旗| 民和| 五大连池市| 璧山县| 花莲市| 衡东县| 孙吴县| 黄梅县| 高清| 绩溪县| 安化县| 丰城市| 柯坪县| 房山区| 天峻县| 武安市| 阜新| 信丰县| 徐州市| 邹平县| 黄石市|