国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Mysql - MySQL5.0存儲(chǔ)過程教程

MySQL5.0存儲(chǔ)過程教程

2019-10-22 14:04mysql教程網(wǎng) Mysql

Introduction 簡(jiǎn)介 MySQL 5.0 新特性教程是為需要了解5.0版本新特性的MySQL老用戶而寫的。簡(jiǎn)單的來(lái)說(shuō)是介紹了“存儲(chǔ)過程、觸發(fā)器、視圖、信息架構(gòu)視圖”,在此感謝譯者陳朋奕的努力.

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

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

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 問題樣例:故障記錄 
  當(dāng)INSERT失敗時(shí),我希望能將其記錄在日志文件中我們用來(lái)展示出錯(cuò)處理的問題樣例是很 
普通的。我希望得到錯(cuò)誤的記錄。當(dāng)INSERT失敗時(shí),我想在另一個(gè)文件中記下這些錯(cuò)誤的 
信息,例如出錯(cuò)時(shí)間,出錯(cuò)原因等。我對(duì)插入特別感興趣的原因是它將違反外鍵關(guān)聯(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)的出錯(cuò)信息) 
  我開始要?jiǎng)?chuàng)建一個(gè)主鍵表,以及一個(gè)外鍵表。我們使用的是InnoDB,因此外鍵關(guān)聯(lián)檢查是打 
開的。然后當(dāng)我向外鍵表中插入非主鍵表中的值時(shí),動(dòng)作將會(huì)失敗。當(dāng)然這種條件下可以很 
快找到錯(cuò)誤號(hào)1216。 
3. Sample Problem: Log Of Failures 

CREATE TABLE error_log (error_message 
CHAR(80))// 
  下一步就是建立一個(gè)在做插入動(dòng)作出錯(cuò)時(shí)存儲(chǔ)錯(cuò)誤的表。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲欧美激情精品一区二区 | 久草视频播放 | 精品久久久久久久人人人人传媒 | 午夜在线视频 | 久久综合激情 | 精品无人乱码一区二区三区的优势 | 日韩欧美在线综合网 | 欧美一区免费 | 亚洲视频在线观看免费 | 成人影院一区二区 | 99伊人 | 亚洲国产二区 | 午夜高清视频 | 婷婷色av | 国产精品视频久久久 | 国产亚洲一区二区三区在线观看 | 国产一级片 | 亚洲视频在线免费观看 | 亚洲精品一区二区三区在线 | 寡妇少妇高潮免费看蜜臀a 午夜免费电影 | 国产精品18久久久久久久久久久久 | 亚洲视频在线观看 | 久一在线 | 国产毛片久久久 | 亚洲一区二区三区在线 | 欧美一区二区三区免费观看视频 | 色综合久久一区二区三区 | 操操操av | 婷婷久久综合 | 欧美激情网 | 最近韩国日本免费高清观看 | 蜜桃av一区二区三区 | 日韩有码在线播放 | 日韩欧美天堂 | 中文字幕一区二区三区四区 | 天天拍天天干天天操 | 午夜精品久久久久久久久 | 欧美日韩精品一区二区在线播放 | 久久只有精品 | 91精品啪aⅴ在线观看国产 | 午夜电影网址 |