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

MySQL5.0存儲過程教程

 更新時間:2008年04月06日 01:23:53   作者:  
Introduction 簡介 MySQL 5.0 新特性教程是為需要了解5.0版本新特性的MySQL老用戶而寫的。簡單的來說是介紹了“存儲過程、觸發(fā)器、視圖、信息架構視圖”,在此感謝譯者陳朋奕的努力.

  希望這本書能像內(nèi)行專家那樣與您進行對話,用簡單的問題、例子讓你學到需要的知識。為了達到這樣的目的,我會從每一個細節(jié)開始慢慢的為大家建立概念,最后會給大家展示較大的實用例,在學習之前也許大家會認為這個用例很難,但是只要跟著課程去學,相信很快就能掌握。
Conventions and Styles 約定和編程風格
  每次我想要演示實際代碼時,我會對mysql客戶端的屏幕就出現(xiàn)的代碼進行調(diào)整,將字體改成Courier,使他們看起來與普通文本不一樣。
  在這里舉個例子:mysql> DROP FUNCTION f;Query OK, 0 rows affected (0.00 sec)
  如果實例比較大,則需要在某些行和段落間加注釋,同時我會用將“
mysql> CREATE PROCEDURE p ()
-> BEGIN
-> /* This procedure does nothing */  END;//Query OK, 0 rows affected (0.00 sec)
  有時候我會將例子中的"mysql>"和"->"這些系統(tǒng)顯示去掉,你可以直接將代碼復制到mysql客戶端程序中(如果你現(xiàn)在所讀的不是電子版的,可以在mysql.com網(wǎng)站下載相關腳本)所以的例子都已經(jīng)在Suse 9.2 Linux、Mysql 5.0.3公共版上測試通過。
  在您閱讀本書的時候,Mysql已經(jīng)有更高的版本,同時能支持更多OS了,包括Windows,Sparc,HP-UX。因此這里的例子將能正常的運行在您的電腦上。但如果運行仍然出現(xiàn)故障,可以咨詢你認識的資深Mysql用戶,以得到長久的支持和幫助。
Why MySQL Statements are Legal in a Procedure Body
  什么MySQL語句在存儲過程體中是合法的?
  什么樣的SQL語句在Mysql存儲過程中才是合法的呢?你可以創(chuàng)建一個包含INSERT, UPDATE,DELETE, SELECT, DROP, CREATE, REPLACE等的語句。你唯一需要記住的是如果代碼中包含MySQL擴充功能,那么代碼將不能移植。在標準SQL語句中:任何數(shù)據(jù)庫定義語言都是合法的,如:

CREATE PROCEDURE p () DELETE FROM t; //
  SET、COMMIT以及ROLLBACK也是合法的,如:
CREATE PROCEDURE p () SET @x = 5; //
  MySQL的附加功能:任何數(shù)據(jù)操作語言的語句都將合法。
CREATE PROCEDURE p () DROP TABLE t; //
  MySQL擴充功能:直接的SELECT也是合法的:
CREATE PROCEDURE p () SELECT 'a'; //
  順便提一下,我將存儲過程中包括DDL語句的功能稱為MySQL附加功能的原因是在SQL標準中把這個定義為非核心的,即可選組件。
The New SQL Statements 新SQL語句
Variables 變量
  在復合語句中聲明變量的指令是DECLARE。
  (1) Example with two DECLARE statements
  兩個DECLARE語句的例子 

CREATE PROCEDURE p8 ()
BEGIN
DECLARE a INT;
DECLARE b INT;
SET a = 5;
SET b = 5;
INSERT INTO t VALUES (a);
SELECT s1 * a FROM t WHERE s1 >= b;
END; // /* I won't CALL this */
  在過程中定義的變量并不是真正的定義,你只是在BEGIN/END塊內(nèi)定義了而已(譯注:也就是形參)。
Error Handling 異常處理
  好了,我們現(xiàn)在要講的是異常處理
1. Sample Problem: Log Of Failures 問題樣例:故障記錄
  當INSERT失敗時,我希望能將其記錄在日志文件中我們用來展示出錯處理的問題樣例是很
普通的。我希望得到錯誤的記錄。當INSERT失敗時,我想在另一個文件中記下這些錯誤的
信息,例如出錯時間,出錯原因等。我對插入特別感興趣的原因是它將違反外鍵關聯(lián)的約束
2. Sample Problem: Log Of Failures (2)
mysql> CREATE TABLE t2
s1 INT, PRIMARY KEY (s1))
engine=innodb;//
mysql> CREATE TABLE t3 (s1 INT, KEY (s1),
FOREIGN KEY (s1) REFERENCES t2 (s1))
engine=innodb;//
mysql> INSERT INTO t3 VALUES (5);//
...
ERROR 1216 (23000): Cannot add or update a child row: a foreign key
constraint fails(這里顯示的是系統(tǒng)的出錯信息)
  我開始要創(chuàng)建一個主鍵表,以及一個外鍵表。我們使用的是InnoDB,因此外鍵關聯(lián)檢查是打
開的。然后當我向外鍵表中插入非主鍵表中的值時,動作將會失敗。當然這種條件下可以很
快找到錯誤號1216。
3. Sample Problem: Log Of Failures

CREATE TABLE error_log (error_message
CHAR(80))//
  下一步就是建立一個在做插入動作出錯時存儲錯誤的表。

相關文章

  • MySQL中日期和時間戳互相轉換的函數(shù)和方法

    MySQL中日期和時間戳互相轉換的函數(shù)和方法

    這篇文章主要介紹了MySQL中日期和時間戳互相轉換的函數(shù)和方法,本文分別講解了時間戳轉換成日期的方法和把日期轉換為時間戳的方法,需要的朋友可以參考下
    2015-06-06
  • mysql source 命令導入大的sql文件的方法

    mysql source 命令導入大的sql文件的方法

    本文將詳細介紹mysql source 命令導入大的sql文件的方法;需要的朋友可以參考下
    2012-11-11
  • mysql中grant?all?privileges?on賦給用戶遠程權限方式

    mysql中grant?all?privileges?on賦給用戶遠程權限方式

    這篇文章主要介紹了mysql中grant?all?privileges?on賦給用戶遠程權限方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • mysql如何修改表中某個數(shù)據(jù)

    mysql如何修改表中某個數(shù)據(jù)

    這篇文章主要介紹了mysql如何修改表中某個數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • mysql連接查詢詳解

    mysql連接查詢詳解

    這篇文章主要介紹了mysql連接查詢,當查詢結果的列來源于多張表時,需要將多張表連接成一個大的數(shù)據(jù)集,再選擇合適的列返回,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2022-05-05
  • MySQL存儲時間類型選擇的問題講解

    MySQL存儲時間類型選擇的問題講解

    今天小編就為大家分享一篇關于MySQL存儲時間類型選擇的問題講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • centos7.2離線安裝mysql5.7.18.tar.gz

    centos7.2離線安裝mysql5.7.18.tar.gz

    這篇文章主要為大家詳細介紹了centos7.2離線安裝mysql5.7.18.tar.gz,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 通過SqlCmd執(zhí)行超大SQL文件的方法

    通過SqlCmd執(zhí)行超大SQL文件的方法

    這篇文章主要介紹了sql?server?與?mysql?中常用的SQL語句區(qū)別,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • MySQL中ALTER?LOGFILE?GROUP?語句的具體使用

    MySQL中ALTER?LOGFILE?GROUP?語句的具體使用

    ALTER LOGFILE GROUP語句用于修改重做日志組的配置,本文主要介紹了MySQL中ALTER?LOGFILE?GROUP?語句的具體使用,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • MySQL數(shù)據(jù)庫之union,limit和子查詢詳解

    MySQL數(shù)據(jù)庫之union,limit和子查詢詳解

    這篇文章主要為大家詳細介紹一下MySQL數(shù)據(jù)庫中union、limit和子查詢的使用,文中的示例代碼講解詳細,對我們學習MySQL有一定幫助,需要的可以參考一下
    2022-07-07

最新評論

都安| 额敏县| 舟山市| 岳西县| 鱼台县| 弥勒县| 修武县| 昌江| 郸城县| 威宁| 屏边| 太仆寺旗| 宁城县| 蓬莱市| 宣化县| 静乐县| 南澳县| 苍梧县| 广河县| 阿鲁科尔沁旗| 莱阳市| 安新县| 漠河县| 皮山县| 桂平市| 萨嘎县| 江源县| 弥渡县| 松桃| 石家庄市| 贡觉县| 南江县| 临汾市| 象州县| 高雄市| 阿克陶县| 凤庆县| 庆城县| 乌审旗| 台中县| 大安市|